Vous êtes sur la page 1sur 17

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
Hello World!
• appletviewer hello
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
Hello World!
• Java plug-in
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 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

Vous aimerez peut-être aussi