Safari AppletViewer Web HTML Netscape Web Web 13-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web update Event Driven paint Signature Overwriting Overriding Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-1
Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=10 ; x, y i Netscape Web Instance variable class { startx starty public class PointHolder extends Applet { int startx; // x int starty; // y public void paint( Graphics gc ) {... Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-2
0 0.0 false \u0000 null null PointHolder startx=10 starty=25 public class PointHolder extends Applet { int startx = 10; int starty = 25; public void paint( Graphics g ) { g.drawrect( startx, starty, 20, 20 ); startx += 10; starty += 25; // init init public class PlaceHolder extends Applet { int startx = 10, starty = 100; // FontMetrics metrics; public void init( ) { metrics = getfontmetrics( );... // init Frame new Frame( " " ) setsize(, ) show( ) setvisible( ) dispose( ) Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-3
getgraphics( ) setvisible setvisible( true ) setvisible( false ) window import java.awt.* ; import java.applet.* ; public class FrameTester extends Applet { Frame window; // public void init( ) { window = new Frame( "Cool Window" ); window.setsize( 200, 200 ); window.show( ); public void paint( Graphics gc ) { window.getgraphics( ).drawstring( "Hello", 50, 100 ); gc.drawstring( "Hello, Again", 50, 100 ); public void start( ) { window.setvisible( true ); repaint( ); public void stop( ) { window.setvisible( true ); public void destroy( ) { window.dispose( ); // // // // // // // // // init paint getgraphics drawstring start Web Web setvisible repaint repaint stop Web setvisible destroy dispose 153-2 FrameTester Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-4
repaint repaint Web Web paint Web Browser Applet repaint( ); paint( Graphics gc) 13-3 repaint Web paint paint Web super this Java super this this super Interface Java Java Inheritance super class) sub class Applet public class Sample extends Applet class: Applet class: Sample inheritance super class sub class 13-4 Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-5
Applet Sample Frame public class Sample extends Applet, Frame Java Java Runnable ImageObserver AppletContext AudioClip ActionListener HTML class implements public class GreedySample extends Applet implements Runnable, ActionListener GreedySample Applet Runnable ActionListener Signature Runnable public void run( ) ActionListener public void actionperformed( ActionEvent e ) Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-6
Netscape Java Applet interface: Runnable additional properties super class: Applet standard properties class: GreedySample interface: ActionListener additional properties 13-5 Java JDK1.1 ActionListener public class SampleApplet extends Applet implements ActionListener {... ActionListener actionperformed Web init Web Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-7
import java.awt.*; import java.awt.event.*; import java.applet.*; // public class extends Applet implements ActionListener { public void init( ) { Web public void paint( Graphics g ) { public void actionperformed( ActionEvent e ) { ActionListener Button ActionListener Checkbox ItemListener PopupMenu ItemListener List ActionListener ItemListener Choice ItemListener Scrollbar AdjustmentListener TextArea TextListener TextField TextListener Graphic Uses Interface GUI Component ActionListner ItemListener TextListner GUI Highlevel Event ActionListener ActionListener actionperformed( ActionEvent ae ) ItemListener itemstatechanged( ItemEvent ie ) AdjustmentListener adjustmentvaluechanged( AdjustmentEvent ae ) TextListener textvaluechanged( TextEvent te ) Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-8
Applet Method Call with ActionEvent actionperformed Button 13-6 actionperformed GUI Button Button 1. Button ; 2. = new Button( " " ); 3..addActionListener( this ); this 4. add( ); OK Button mybutton; mybutton = new Button( "OK" ); mybutton.addactionlistener( this ); add( mybutton ); Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-9
Web init y y import import import java.awt.*; java.awt.event.*; java.applet.*; public class BoxMove extends Applet implements ActionListener { Button button; // int y ; // public void init() { y = 0; button = new Button( "Go!" ); button.addactionlistener( this ); add( button ); // // 0 // Go! // // public void paint( Graphics g ) { g.drawrect( 10, y, 20, 20 ); // // public void actionperformed( ActionEvent e ) { y += 10; repaint( ); // // y // Web 13-7 BoxMove Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-10
Button button; // int y; // y MVC MVC 1973 Xerox PaloAlto ALTO Smalltalk ALTO MVC Model-View-Controller ALTO Alan Kay Dynabook Smalltalk Alto Workstation & Smalltalk & Children 13-8 Alto MVC Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-11
View #1 Model Alto 3821 Perq 2423 Dolphin 1234 Star 3345 Star Dolphin Perq Alto 0 1000 2000 3000 4000 Controller for View #1 user interactio n View #2 Alto 3821 Perq 2423 Dolphin 1234 Star 3345 13-9 MVC Controller for View #2 user interactio n MVC Java MVC ActionListener Applet y y paint public void paint( Graphics g ) { g.setcolor( new Color( y, 0, 0 ) ); g.fillrect( 10, 10, 100, 100 ); // y Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-12
MVC paint paint actionperformed 13-10 MVC Java ActionEvent.getSource( ) Object source = ae.getsource( ); public void actionperformed( ActionEvent e ) { if ( e.getsource( ) == ) { else if ( e.getsource( ) == ) { repaint( ); Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-13
BoxMove up down import java.awt.*; import java.awt.event.*; import java.applet.*; public class BoxMove extends Applet implements ActionListener { Button up, down; int y = 0; public void init( ) { up = new Button( "Up" ); up.addactionlistener( this ); add( up ); down = new Button( "Down" ); down.addactionlistener( this ); add( down ); public void paint( Graphics g ) { g.setcolor( Color.gray ); g.fill3drect( 10, y, 20, 20, false ); public void actionperformed( ActionEvent e ) { if ( e.getsource( ) == up ) { y -= 10; else if ( e.getsource( ) == down ) { y += 10; repaint(); Label = new Label( " " ); add( ); Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-14
Label mylabel new Label( " " ); add( mylabel ); Choice = new Choice( );.add( ); add( ); // import java.awt.*; import java.awt.event.*; import java.applet.*; public class ColorSelector extends Applet implements ActionListener { Choice colorselect; int selected = 0; Label mylabel; Button button; public void init( ) { mylabel = new Label( "Select Color and Push Button" ); add( mylabel ); colorselect = new Choice( ); colorselect.add( "Red" ); colorselect.add( "Green" ); colorselect.add( "Blue" ); colorselect.select( 0 ); add( colorselect ); button = new Button( "Change" ); button.addactionlistener( this ); add( button ); public void paint( Graphics g ) { g.setcolor( ( selected == 0 )? Color.red : ( selected == 1 )? Color.green : Color.blue ); g.fillrect( 20, 40, 100, 100 ); public void actionperformed( ActionEvent e ) { selected = colorselect.getselectedindex( ); repaint( ); Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-15
import java.awt.*; import java.awt.event.*; import java.applet.*; public class ColorSelector extends Applet implements ItemListener { Choice colorselect; int selected = 0; Label mylabel; public void init( ) { mylabel = new Label( "Select Color" ); add( mylabel ); colorselect = new Choice( ); colorselect.add( "Red" ); colorselect.add( "Green" ); colorselect.add( "Blue" ); colorselect.select( 0 ); colorselect.additemlistener( this ); add( colorselect ); public void paint( Graphics g ) { g.setcolor( ( selected == 0 )? Color.red : ( selected == 1 )? Color.green : Color.blue ); g.fillrect( 20, 40, 100, 100 ); public void itemstatechanged( ItemEvent e ) { selected = colorselect.getselectedindex( ); repaint( ); 13-1. 13-2. +16-16 256 0 actionperformed 13-3. Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-16
x Copyright by Tatsuo Minohara 2004 Rev C. Nov. 27th Macintosh Java Primer Chapter 13-17