Download Intro to Java

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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( ) - 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
Related documents