Download presentation
Presentation is loading. Please wait.
Published byHomer French Modified over 8 years ago
1
1 Java and AWT CPS 470 Spring 1998 Laura Campbell
2
2 Java 1.0 ADM group thinks they can do it using 1.0 instead of 1.1 Better chance of running under Netscape than 1.1 /usr/java/bin/javac /usr/java/bin/appletviewer
3
3 Setup for Java on SGIs Add to.personal file: if (`uname` == "IRIX") then set path=($path /usr/java/bin) endif A path to the correct javac (/opt/bin/javac) should already be set up on the Suns.
4
4 Java.awt-components MenuComponent –MenuBar –MenuItem Menu, CheckboxMenuItem Component –Button, Canvas, Checkbox, Choice, Label, List, Scrollbar –TextComponent TextArea, TextField –Container Panel, Window
5
5 References URLs on class web page(s) Java books on reserve in Engineering Library SunSoft Press Java Series Java API (James Gosling, et al)
6
6 Lab Assignment Files –MsuMap.java –MyCanvas.java –?.java (you’ll subclass Choice) Task –Keep the map display and the choice items synchronized How –Subclass Choice so you can override the event handling
7
7 // MsuMap.java import java.awt.*; import java.applet.*; import java.net.*; public class MsuMap extends Canvas { private Image im; private Image msumap; private Image selectedMsumap; public MsuMap(Image i1, Image i2) { msumap = i1; selectedMsumap = i2; im = msumap; } public void paint( Graphics g ) { g.drawImage(im,0,0,this); } public boolean handleEvent( Event event ) { Object target = event.target; int id = event.id; if ((target == this) && (id == Event.MOUSE_DOWN)) { if (im == msumap) { im = selectedMsumap; } else { im = msumap; } repaint(); return true; } return false; }
8
8 // MyCanvas.java (original) import java.applet.*; import java.awt.*; import java.net.*; public class MyCanvas extends Applet { java.awt.Component canvas; java.awt.Choice choiceBox; // Initialize this object. public void init() { super.init(); URL codebase = getCodeBase(); Image msumap = getImage(codebase, "msumap.gif"); Image selected = getImage(codebase, "selected.gif"); // Manual layout may be used for appletviewer // but should NOT be used for Netscape (it gets confused). // Set the layout to null to override it with manual commands. // // setLayout(null); // may uncomment this line for appletviewer // Set the background color to off-white. setBackground(new Color(0xfaf0e6)); resize(800, 500); add(canvas = new MsuMap(msumap,selected)); canvas.move(43, 20); canvas.resize(600, 500); canvas.show(); add(choiceBox = new java.awt.Choice()); choiceBox.addItem("Route"); choiceBox.addItem("Facility"); choiceBox.setFont(new Font("Dialog", 0, 12)); // may uncomment the next line if manual layout used for appletviewer // choiceBox.move(650, 49); choiceBox.show(); }
9
9 // MyCanvas.java (revised) import java.applet.*; import java.awt.*; import java.net.*; public class MyCanvas extends Applet { java.awt.Component canvas; RorF_Choice choiceBox; // Using our own subclassed Choice public void init() { super.init(); URL codebase = getCodeBase(); Image msumap = getImage(codebase, "msumap.gif"); Image selected = getImage(codebase, "selected.gif"); // Manual layout may be used for appletviewer // but should NOT be used for Netscape (it gets confused). // Set the layout to null to override it with manual commands. // // setLayout(null); // may uncomment this line for appletviewer // Set the background color to off-white. setBackground(new Color(0xfaf0e6)); resize(800, 500); add(canvas = new MsuMap(msumap,selected)); canvas.move(43, 20); canvas.resize(600, 500); canvas.show(); add(choiceBox = new RorF_Choice()); // Use our own // removed lines of code were placed in the RorF_Choice constructor // may uncomment the next line if manual layout used for appletviewer // choiceBox.move(650, 49); choiceBox.show(); }
10
10 // RorF_Choice.java (subclasses Choice) import java.applet.*; import java.awt.*; import java.net.*; public class RorF_Choice extends Choice { public RorF_Choice() { // call parent’s constructor first super(); // place the 3 lines of code from MyCanvas.java here // (use the implicit object “this” instead of “choiceBox”) } public boolean action( Event event, Object obj) { // cast the object argument to a String // print out the event and string now showing on menu System.out.println(“\nPut some message here.”); // return true if event handled successfully // return false if event should be passed to parent return super.action(event,obj); }
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.