Developing User Interfaces DUI Chris North cs 3724

  • Slides: 17
Download presentation
Developing User Interfaces (DUI) Chris North cs 3724: HCI

Developing User Interfaces (DUI) Chris North cs 3724: HCI

GUI Development: Goals 1. Learn general GUI programming concepts • • • GUI components

GUI Development: Goals 1. Learn general GUI programming concepts • • • GUI components Layout Event-based programming Graphics Animation 2. Learn Java • • • Swing Layout managers Listerners 2 D graphics Threads Then: can learn other languages quickly • VB, C#, Xwin, Java 49

Intro to Java

Intro to Java

Why Java?

Why Java?

Java materials • Java 2 = sdk 1. 2 or better • http: //java.

Java materials • Java 2 = sdk 1. 2 or better • http: //java. sun. com/j 2 se/ • 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

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 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

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){

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

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.

Hmmm… • dir hello. class goodbye. class blah. class foo. class bar. class areyouawakein. class • Java ? ? ? • Run. Me. bat: java hello

JBuilder

JBuilder

Java Applets • Run in a web browser • hello. java: import javax. swing.

Java Applets • Run in a web browser • hello. java: import javax. swing. *; class hello extends JApplet { public void init(){ get. Content. Pane(). 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 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( ) - initialization start( ) - resume processing

Applet Methods • • • init( ) - initialization start( ) - resume processing (e. g. animations) stop( ) - pause destroy( ) - cleanup paint( ) - redraw stuff (‘expose’ event)

Applet Security • • No read/write on client machine Can’t execute programs on client

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

Upcoming Java Topics • • • GUIs: Swing, AWT, MVC Event handling, listeners Graphics Animation, threads Components, Java. Beans Databases, JDBC