Developing User Interfaces (DUI) Chris North cs3724: HCI
17 Slides270.00 KB
Developing User Interfaces (DUI) Chris North cs3724: HCI
GUI Development: Goals 1. Learn general GUI programming concepts GUI components Layout Event-based programming Graphics Animation 2. Learn Java Swing Layout managers Listerners 2D graphics Threads Then: can learn other languages quickly VB, C#, Xwin, Java 49
Intro to Java
Why Java?
Java materials Java 2 sdk 1.2 or better http://java.sun.com/j2se/ Documentation: http://java.sun.com/docs/ Tutorials, reference, API Borland JBuilder 6 http://www.borland.com/jbuilder/personal/ Free! Cross between VB and VC
Java differences Basic statements identical to C Object-oriented only! No .h files main() is inside a class No global variables No pointers (object references only) No delete: automatic garbage collection Single inheritance only, “interfaces” Applet/application GUI: AWT, Swing Packaging Error Handling, exceptions (try, catch) E.g. Array bounds checking Security Components: beans
Java compiling Code: hello.java (text file) Compile: javac hello.java Creates: hello.class (byte code) Run: java hello Java virtual machine, interpets/compiles (machine code) Packaging: jar Or use JBuilder, like VC
Java Applications Run from command line hello.java: class hello { public static void main(String[] args){ System.out.println(“Hello World!”); } } javac hello.java java hello Hello World!
Typically create objects hello.java: class hello { public static void main(String[] args){ // Create and use objects hello h new hello(); } public hello(){ // Constructor } }
Many Classes Compile each separately Can be main( ) in any/all classes hello.java: class hello { goodbye g; public static void main(String[] args){ } goodbye.java: class goodbye { public static void main(String[] args){ }
Hmmm dir hello.class goodbye.class blah.class foo.class bar.class areyouawakein.class Java ? RunMe.bat: java hello
JBuilder
Java Applets Run in a web browser hello.java: import javax.swing.*; class hello extends JApplet { public void init(){ getContentPane().add( new JLabel(“Hello World!”) ); } } javac hello.java appletviewer hello Hello World!
Java Applets in HTML hello.html: html body applet code “hello.class” height 100 width 200 Need java. /applet /body /html hello.html Put hello.html and hello.class on website Java plug-in Hello World!
Applet Methods init( ) start( ) stop( ) destroy( ) paint( ) - initialization - resume processing (e.g. animations) - pause - cleanup - redraw stuff (‘expose’ event)
Applet Security No read/write on client machine Can’t execute programs on client machine Communicate only with server “Java applet window” Warning Certificates
Upcoming Java Topics GUIs: Swing, AWT, MVC Event handling, listeners Graphics Animation, threads Components, JavaBeans Databases, JDBC