2 p.1 2 Java Java JDK Sun Microsystems Oracle JDK javac Java java JVM IDESun Microsystems Oracle NetBeans, IBM 1 Eclipse 2, JetBrains IntelliJ IDEA IDE GUI JDK Java 2.1 Hello World! 2.1.1 Java 2.1.1 GUI Hello World Emacs Hello0.java public class Hello0 { public static void main(string args[]) { System.out.printf("Hello World!%n"); Hello0.java Java JVM javac > javac Hello0.java 1 IBM Eclipse Foundation 2 http://www.eclipse.org/
2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q 2.1.2 Foo.java Java : Q 2.1.3 Bar.class main Java : Hello0.java public class Hello0 Hello0 2.1.1 Java Java public Hello0 Hello0.java.java 2.1.2 3 Hello0 { : Java 3 public
2.1. 2 p.3 _, $, A Z, a z, 0 9, Unicode 0xc0 Java C public void, for, if Java 2.1.3 C C++ Q 2.1.4 Java 123Daaah Kagawa-U Drag n Drop 2_1 Foo777 Bar HelloWorld! AreYouHappy? Java C main main C main int main(int argc, char** argv) void main(string args[]) public static public static void main(string args[]) String Java C String char String C " " System.out.printf C printf Hello World! %d, %c, %x, %s C printf %n Java Unix Y=x0A, Windows Y=x0DY=x0A Q 2.1.5 Java main { : 2.1.2 Java GUI 2.1.6 GUI (Graphical User Interface, ) Java Swing Java GUI Java8 JavaFX Swing Java GUI
2 p.4 2 Java Swing Swing Hello.javaEmacs Hello.java import javax.swing.*; import java.awt.*; public class Hello extends JPanel { public Hello() { setpreferredsize(new Dimension(250, 50)); @Override public void paintcomponent(graphics g) { super.paintcomponent(g); g.drawstring("hello WORLD!", 50, 25); public static void main(string[] args) { SwingUtilities.invokeLater(() -> { JFrame frame = new JFrame(" "); // frame.add(new Hello()); frame.pack(); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); ); Hello.java JVM javac > javac Hello.java Hello.class JVM Hello java > java Hello
2.2. Hello 2 p.5 Java Java C 2.1.4 2.1.5 2.1.6 C++ C C99 // 2.2 Hello Java GUI Hello.java 2 import javax.swing java.awt, package * GUI 2 import 2 : OS JPanel javax.swing.jpanel JPanel import javax.swing.jpanel; import javax.swing import javax.swing.*; import package main package : Java.java (.class).java.class
2 p.6 2 Java Java import java.lang import String java.lang public class Hello extends JPanel JPanel Hello Hello JPanel JPanel Hello JPanel GUI public public public Hello() { public Hello JPanel paintcomponent 2.2.1 paintcomponent @Override JDK5.0 2.2.2 main JFrame Hello new Hello() (add) SwingUtilities.invokeLater(() -> { ); Hello main Q 2.2.1 Qux JPanel import public class 3 : public class
2.3. Graphics 2 p.7 2.3 Graphics JPanel paintcomponent 2.3.1 paintcomponent public void paintcomponent(graphics g) Graphics public class C paintcomponent super.paintcomponent(g) super. super.paintcomponent(g) Graphics Hello Graphics drawstring HELLO WORLD! 50 25 void drawstring(string str, int x, int y) (x,y) str 2.4 Java. ( 1,..., n ).. 2.4.1 g.drawstring(... ) g Graphics drawstring Java Java
2 p.8 2 Java :.,.. Q 2.4.1 g Graphics (12, 34) Thank You! : 2.4.2 1. Hello.java "HELLO WORLD!" 2. Hello.java 50, 25 2.5 Java AWT Hello.java Graphics drawstring Graphics void setcolor(color c) void setfont(font f) 2.5.1 ColorTest.java import javax.swing.*; import java.awt.*; 2.5.1 2.5.2 public class ColorTest extends JPanel { public ColorTest() { setpreferredsize(new Dimension(150, 100)); @Override public void paintcomponent(graphics g) {
2.5. Java AWT 2 p.9 super.paintcomponent(g); String msg = "Hello, World!"; g.setcolor(color.blue); g.setfont(new Font(Font.SERIF, Font.PLAIN, 14)); g.drawstring(msg, 20, 25); g.setcolor(color.orange); g.setfont(new Font(Font.SERIF, Font.BOLD, 14)); g.drawstring(msg, 20, 50); g.setcolor(color.red); g.setfont(new Font(Font.SERIF, Font.ITALIC, 14)); g.drawstring(msg, 20, 75);... // main 100 C 2.5.3 2.5.4 int, double C C 2.5.5 Color Color.BLUE, Color.RED 4 RGB Color Tips: Java ((Graphics2D)g).setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); setrenderinghint Graphics Graphics2D JPanel 4 BLUE, RED, ORANGE BLACK, CYAN, DARKGRAY, GRAY, GREEN, LIGHTGRAY, MAGENTA, PINK, WHITE, YELLOW
2 p.10 2 Java paintcomponent Graphics2D Graphics Graphics2D 2.6 2.6.1 2.6.2. System.out System java.lang.system out 2.6.3 API static Color static Color BLACK Math java.lang.math static double cos(double a) Color.BLACK, Math.cos(0.1). Java static C static Java main : Java 5.0 static import import static java.lang.math.cos; // cos // import static java.lang.math.*; // Math cos(0.1) Q 2.6.1 g Graphics import java.awt.*; import static java.awt.color.*; :
2.6. 2 p.11 Q 2.6.2 π java.lang.math public static final double PI = 3.141592653589793; final static import Java : Java 3 1.. ( ) : g.drawstring("hello", 20, 75) 2.. ( ) : Math.cos(0) 3. ( ) : setpreferredsize(new Dimension(150, 100)) 1 API void drawstring(string str, int x, int y) (x,y) str g.drawstring("hello WORLD!", 50, 25) 2 API static static double cos(double a) Math.cos(Math.PI) Math. 3 2 static import import static java.lang.math.*; cos(pi) setpreferredsize JPanel JPanel JComponent JPanel static setpreferredsize(new Dimension(100, 100))
2 p.12 2 Java 2.7 2.7.1 new 2.7.2 constructor API Color 3 int 0 255 R G B new Color(255,0,0) Color g.setcolor(color.red); g.setcolor( 2.7.3 ); Font Font.SERIF Font.MONOSPACED, Font.SANS_SERIF, Font.DIALOG, Font.DIALOG_INPUT Font.BOLD, Font.ITALIC, Font.PLAIN 3 Font.BOLD Font.ITALIC 3 new Font(Font.SERIF, Font.BOLD, 16) 16 Q 2.7.1 g Graphics 12 Font.MONOSPACED : 2.7.2 2.8 Graphics void drawline(int x1, int y1, int x2, int y2) (x1, y1) (x2, y2) void drawrect(int x, int y, int w, int h) (x, y) w, h void clearrect(int x, int y, int w, int h) (x, y) w, h void drawoval(int x, int y, int w, int h) (x, y) w, h void drawpolygon(int[] xs, int[] ys, int n)
2.8. 2 p.13 (x[0], y[0]) (x[n-1], y[n-1]) void fillrect(int x, int, y, int w, int h) (x, y) w, h draw fill 2.8.1 : Java x y : Java Java API Java 8 http://docs.oracle.com/javase/ jp/8/docs/api/index.html Graphics ShapeTest.java import javax.swing.*; import java.awt.*; import static java.awt.color.*; public class ShapeTest extends JPanel { public ShapeTest() { setpreferredsize(new Dimension(200, 150)); @Override public void paintcomponent(graphics g) { int[] xs = { 100, 137, 175, 175, 137, 100; int[] ys = { 0, 0, 25, 50, 50, 25; super.paintcomponent(g); g.setcolor(red); g.drawline(0, 0, 75, 50); g.setcolor(green); g.drawrect(0, 0, 75, 50); g.setcolor(blue); g.drawoval(0, 75, 75, 50); g.setcolor(orange); g.drawpolygon(xs, ys, 6); g.setcolor(cyan); g.fillrect(90, 65, 75, 50);
2 p.14 2 Java g.setcolor(magenta); g.fillrect(100, 75, 75, 50); g.setcolor(yellow); g.fillrect(110, 85, 75, 50); drawline, drawrect Graphics Graphics g 2.8.1 2 xs, ys paint drawpolygon int[] xs = {100, 137, 175, 175, 137, 100; C int xs[] = {100, 137, 175, 175, 137, 100; Java [] [] Java 2.8.2 ShapeTest.java 2.8.3 Graphics : void draw3drect(int x, int y, int w, int h, boolean raised) void drawarc(int x, int y, int w, int h, int angle1, int angle2) void drawroundrect(int x, int y, int w, int h, int rx, int ry) void filloval(int x, int y, int w, int h) void fillpolygon(int[] xs, int[] ys, int n) void fill3drect(int x, int y, int w, int h, boolean raised) void fillarc(int x, int y, int w, int h, int angle1, int angle2) void fillroundrect(int x, int y, int w, int h, int rx, int ry) GUI
2.9. 2 p.15 boolean boolean 2.8.2 2.8.3 2 2.8.4 indexof String java.lang.string : 1. 2. m n-1 Java 0 1 1. msg e 33 2. msg 11 20 "rown fox j" C a StringExample.java public class StringExample { public static void main(string[] args) { String msg = "The quick brown fox jumps over the lazy dog."; System.out.printf(" a %d %n", msg.indexof( a ));... 2.9 Java java.util.scanner ScannerExample.java import java.util.scanner; public class ScannerExample { public static void main(string[] args) { Scanner sc = new Scanner(System.in);
2 p.16 2 Java int i = sc.nextint(); System.out.printf(" %d 2 %d %n", i, i*i); nextint int double nextdouble next nextline 2.9.1 java.util.scanner nextdouble, next, nextline JDK class javac java main import JFrame JPanel extendspaintcomponent Graphics drawstring new Java API boolean