1. 1 B 1 ( ) ( ) ( [ ] ) A4 1 ( ) 1 1 2 NetBeans IDE Java Java Swing GUI
3. Java 2 3 Java C ( ) 4 java main 5 byte 1 128 +127 short 2 32768 +23767 int 4 2 31 2 31 1 long 8 2 63 2 63 1 float 4 7 double 8 15 char 2 ASCII Unicode boolean true false 2
6. GUI 3 1 public class Enzan { 2 public static void main(string[] args) { 3 int a; 4 a = 4; 5 int b = 3; 6 int wa = a + b; 7 System.out.println("wa " + wa; 8 System.out.println("sa " + (a - b)); 9 10 main ( ) main 6 GUI Swing GUI GUI 1. 2. 2 [ 1] JFrame JButton 1 import javax.swing.*; // javax.swing 2 import java.awt.*; // java.awt 3 public class JFrameTest 4 { 5 public static void main(string[] args) 6 { 7 JFrame f = new JFrame("Swing -- JFrame"); // 8 JButton b = new JButton("MyButton"); // 9 f.setsize(300, 200); 10 f.getcontentpane().setlayout(new FlowLayout()); // 11 f.getcontentpane().add(b); // 12 f.setdefaultcloseoperation(jframe.exit_on_close); 13 f.setvisible(true); // 14 15 JFrame ContentPane JButton
6. GUI 4 1,2 Java Swing Java AWT 5 main 7 ( ) f 8 ( b) 9 f 10 f Flowlayout 11 f b 12 13 ( ) 1. JFrameTest.java 2. javac JFrameTest.java 3. java JFrameTest [ ].java 6.1 [ 2]
7. NetBeans IDE 5 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SwingEventTest { public static void main(string[] args) { JFrameListener f = new JFrameListener("Swing event test"); JButton b = new JButton("Change Color"); f.getcontentpane().add(b); b.addactionlistener(f); // f.setvisible(true); // JFrame, class JFrameListener extends JFrame implements ActionListener { public JFrameListener(String title) // { settitle(title); setsize(300,200); getcontentpane().setbackground(color.blue); getcontentpane().setlayout(new FlowLayout()); // setdefaultcloseoperation(jframe.exit_on_close); // public void actionperformed(actionevent e) { if (getcontentpane().getbackground()!= Color.RED) getcontentpane().setbackground(color.red); else getcontentpane().setbackground(color.blue); 7 NetBeans IDE NetBeans IDE: 1. 2. HTTP proxy-a.t-kougei.ac.jp 8080 NetBeans IDE 6.7.1
7. NetBeans IDE 6 1. (a) (b) Java Java > (c) 2. (a) (b) Swing GUI JFrame > (c) ( ) 1. Swing ( ) ( )
7. NetBeans IDE 7 jbutton1 2. (jbutton1) actionpermormed 3. jbutton1actionperformed // TODO add your handling code here: jbutton1actionperformed if (getcontentpane().getbackground()!= Color.RED) getcontentpane().setbackground(color.red); else getcontentpane().setbackground(color.blue); 4. 5. (a) (b) AWT white (1 ) (c) [ ] NetBeans IDE ( ) web Sun Java Color http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/
7. NetBeans IDE 8 java.awt Color java.awt import extends public private nwe static
8. NetBeans GUI 9 8 NetBeans GUI [ 8-1] 1. ( MyPaint) Java Java MyPaint (GUI ) 2. ( ) ( MyPaint) Swing GUI JFrame MyPaint 3. (north) clear slider(thickness) color (west) (center) (east) (south) (a) (BorderLayout) JFrame (b) Swing JFrame (north) (center) 1 jpanel1 jpanel2
8. NetBeans GUI 10 (c) Swing jpanel1 2 1 (d) Swing & MyPaint jcolorchooser1 [JColorChooser] [JFrame] BorderLayout jpanel1 [JPanel] jbutton1 [JButton] jbutton2 [JButton] jslider1 [JSlider] Jpanel2 [JPanel] 4. I( ) (a) jbutton1 i. Action actionperformed jbutton1actionperformed ( ) (b) jbutton2 5. II( ) jpanel2 mousepressed, mousedragged (a) jpanel2mousepressed jpanel2 Mouse mousepressed (b) jpanel2mousemousedragged MouseMotion MouseDragged 6. ( ) startpoint, endpoint graphics ( )
8. NetBeans GUI 11 // End of variables declaration private Point startpoint, endpoint; // private Graphics2D graphics; // import import java.awt.*; import java.awt.geom.*; // Java AWT graphics MyPaint 1 public MyPaint() { imitcomponents(); graphics=(graphics2d)jpanel2.getgrachics(); // 1 1 clearrect private void jbutton1actionperformed(java.awt.event.actionevent evt) { graphics.clearrect(0,0,jpanel2.getwidth(),jpanel2.getheight()); 2 color private void jbutton2actionperformed(java.awt.event.actionevent evt) { Color c = jcolorchooser1.showdialog(this," ",Color.BLACK); graphics.setcolor(c); startpoint private void jpanel2mousepressed(java.awt.event.actionevent evt) { startpoint = evt.getpoint(); graphics.setstroke(new BasicStroke((float)jSlider1.getValue())); startpoint endpoint 2
9. 12 private void jpanel2mousedragged(java.awt.event.actionevent evt) { endpoint = startpoint; startpiont = evt.getpoint(); graphics.draw( new Line2D.Double(startPoint, endpoint)); 8.1 AWT(Abstruct Window Toolkit), Swing Java GUI(Graphics User Interface) Graphics2D 2 ( ) java.awt.geom 2 Line2D Rectangle2D RoundRectangle2D Ellipse2D Arc2D QuadCurve2D (2 ) CubicCurve2D GeneratePath ( ) 9 paint JFrame JPanel paint repaint paint repaint [ 9-1] 2 jbutton1actionperformed JButton2ActionPerformed jpanel1
9. 13 private void jbutton1actionperformed(java.awt.event.actionevent evt) { repaint(); private void jbutton2actionperformed(java.awt.event.actionevent evt) { Graphics g = jpanel1.getgraphics(); g.clearrect(0, 0, jpanel1.getwidth(), jpanel1.getheight()); public void paint(graphics gr) { super.paint(gr); Graphics g = jpanel1.getgraphics(); g.setcolor(color.red); g.drawrect(40, 10, 100, 25); g.drawroundrect(40, 50, 100, 25, 15, 15); g.drawoval(40, 100, 100, 25); g.fillrect(160, 10, 100, 25); g.fillroundrect(160, 50, 100, 25, 15, 15); g.filloval(160, 100, 100, 25); jbutton1actionperformed repaint ( ) JButton2ActionPerformed jpanel1 paint 6 [ ] NetBeans IDE NetBeans IDE 2 JFrame jpanel1 jpanel2 jbutton1 jbutton2 jbutton1actionperformed jbutton2actionperformed
10. Image 14 9.1 paint repaint 10 Image Image Image Image paint Image buffer // End of variables declaration private Point startpoint, endpoint; // private Graphics2D graphics; // private Image buffer; // ( ) MyPaint public MyPaint() { initcomponents(); buffer=createimage(jpanel2.getwidth(),jpanel2.getheight()); // graphics = (Graphics2D)buffer.getGraphics(); // private void jbutton1actionperformed(java.awt.event.actionevent evt) { graphics.clearrect(0, 0, jpanel2.getwidth(), jpanel2.getheight()); repaint(); // ( ) private void jpanel2mousedragged(java.awt.event.mouseevent evt) { endpoint = startpoint; startpoint = evt.getpoint(); graphics.draw( new Line2D.Double(startPoint, endpoint)); repaint(); // ( ) paint public void paint(graphics gr) { super.paint(gr); jpanel2.getgraphics().drawimage(buffer, 0, 0, this);
11. 15 11 : try, catch try {... ( )... catch ( ) { ( try catch 12 : Java new start() sleep() wait() run() sleep() notifyall() new start() run() run() run ( ) public class MyClass extends Thread {... start() run() sleep(time) ( time) 12.1 [ 12-1] (ThreadTest.java) TheradTest ThreadTest (run )
12. 16 1. for (a) (b) stime ( InterruptedException ) 2. ( ) Threadtest main 3 main 1. thread1( 250[msec], 6) 2. thread2( 500[msec], 5) 3. thread3( 1000[msec], 3) 4. thread1 public class ThreadTest extends Thread { int stime; int count; public static void main(string[] args) { ThreadTest thread1 = new ThreadTest(" 1", 250, 6); new ThreadTest(" 2", 500, 5).start(); new ThreadTest(" 3", 1000, 3).start(); thread1.start(); public ThreadTest(String st, int stime, int times) { setname(st); this.stime = stime; count = times; public void run() { for(int i=0; i<count; i++) { System.out.print(getName()+": "+(i+1)+" \t"); for(int k=i; k<count; k++) System.out.print("*"); System.out.println(""); try { sleep((long)stime); catch (InterruptedException e) { System.out.println(getName()+": ");
12. 17 2: 1 ***** 3: 1 *** 1: 1 ****** 1: 2 ***** 2: 2 **** 1: 3 **** 1: 4 *** 2: 3 *** 3: 2 ** 1: 5 ** 1: 6 * 2: 4 ** 1: 3: 3 * 2: 5 * 2: 3: 12.2 (Thread- Test2.java) Runnable public class MyClass implements Runnable {... run public void run() {... Thread t = new Thread(this); // t.start(); // start() Circle ThreadTest2.class 12.2.1 Circle.java import java.awt.*; import javax.swing.*; public class Circle implements Runnable { JFrame frame; Graphics graphics; Thread thread; boolean running = true; int x, y; int xcenter, ycenter, radius;
12. 18 int t, delay; public Circle(JFrame f, Graphics g, int xcenter, int ycenter) { frame = f; graphics = g; radius = 100; this.xcenter = xcenter; this.ycenter = ycenter; t = 0; delay = 200; thread = new Thread(this); thread.start(); public void sw() { running =!running; public void run() { while(!thread.isinterrupted()) { try { if(running) { Point p = new Point(); t = (t+5) % 360; x = xcenter + (int)(radius*math.cos(math.toradians(t))); y = ycenter + (int)(radius*math.sin(math.toradians(t))); frame.repaint(); thread.sleep(delay); catch(interruptedexception e) { public void show (){ int r = 16; graphics.drawoval(x-r, y-r, 2*r, 2*r); Circle show Circle Circle (Circle ) ( ) frame: graphics: xcenter: (x ) ycenter: (y )
12. 19 delay: (sleep ) sw running (true/false) run ( ) 1. running (a) t (b) (x,y) 1 (c) frame( ) 2. delay show (x,y) r sw 12.2.2 ThreadTest2.java NetBeans IDE main ThreadTest2 import java.awt.*;... private void jbutton1actionperformed(java.awt.event.actionevent evt) { if(circle == null) { Graphics gr = jpanel1.getgraphics(); gr.setcolor(color.red); circle = new Circle(this, gr, jpanel1.getwidth()/2,jpanel1.getheight()/2); private void jbutton2actionperformed(java.awt.event.actionevent evt) { circle.sw();... public void paint(graphics g) { super.paint(g); if(circle!= null) circle.show(); Circle circle; // ( )... 1 Math.cos, Math.sin, Math.toDegrees:
13. Timer TimerTask 20 TheradTest2 1 (jbutton1actionperformed) Circle 2 (jbutton2actonperformed) ThreadTest2 jbutton1actionperformed circle 1. jpanel1 2. circle Circle jbutton2actionperformed circle sw / paint 1. paint 2. circle show 13 Timer TimerTask Timer TimerTask Timer : TimeTask : Timer 13.1 [ 13-1] jpanel1[jpanel] TimerTask MyTask Timer import java.util.timertask; // import java.util.timer; import java.awt.*; import javax.swing.*;... public class TimerTest extends javax.swing.jframe { /** Creates new form TimerTest */ public TimerTest() { initcomponents(); f = this; // g = jpanel1.getgraphics(); task = new MyTask(120,120, 80); Timer t = new Timer(); t.schedule(task, 0, 200);
13. Timer TimerTask 21... public void paint(graphics g) { super.paint(g); task.show(); // // Variables declaration - do not modify private javax.swing.jpanel jpanel1; // End of variables declaration Graphics g; // JFrame f; MyTask task; class MyTask extends TimerTask { int t = 0; int r = 16; int x, y; int xcenter, ycenter, radius; public MyTask(int x, int y, int r) { xcenter = x; ycenter = y; radius = r; public void run() { t = (t+5) % 360; x = xcenter + (int)(radius*math.cos(math.toradians(t))); y = ycenter + (int)(radius*math.sin(math.toradians(t))); f.repaint(); public void show() { g.drawoval(x-r, y-r, 2*r, 2*r); NetBeans IDE (TimerTest.java) run Timer run 1 schedule(task, delay, period) : task delay period 13.2 MyTask ( ) ( )