0% found this document useful (0 votes)
104 views21 pages

Java Swing: Chris North cs3724: HCI

This document provides an overview of Java Swing and how to build graphical user interfaces (GUIs) in Java. It discusses: 1) Swing is a new GUI toolkit introduced in Java 2 that extends the Abstract Window Toolkit (AWT) and provides improved components like standard dialog boxes and tooltips. 2) GUI components in Java are represented by classes, which have properties that can be configured and methods that can be called. Components also generate events that can be listened to. 3) A basic Java GUI application involves creating components, configuring their properties, adding them to containers in a hierarchy, and adding listeners to handle events. Layout managers are used to control component placement.

Uploaded by

fparrale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
104 views21 pages

Java Swing: Chris North cs3724: HCI

This document provides an overview of Java Swing and how to build graphical user interfaces (GUIs) in Java. It discusses: 1) Swing is a new GUI toolkit introduced in Java 2 that extends the Abstract Window Toolkit (AWT) and provides improved components like standard dialog boxes and tooltips. 2) GUI components in Java are represented by classes, which have properties that can be configured and methods that can be called. Components also generate events that can be listened to. 3) A basic Java GUI application involves creating components, configuring their properties, adding them to containers in a hierarchy, and adding listeners to handle events. Layout managers are used to control component placement.

Uploaded by

fparrale
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21

Java Swing

Chris North
cs3724: HCI
AWT to Swing
AWT: Abstract Windowing Toolkit
import java.awt.*
Swing: new with Java2
import javax.swing.*
Extends AWT
Tons o new improved components
Standard dialog boxes, tooltips,
Look-and-feel, skins
Event listeners
API:
http://java.sun.com/j2se/1.3/docs/api/index.html
Swing Set Demo

J2sdk/demo/jfc/SwingSet2

Many predefined
GUI components
GUI Component API
Java: GUI component = class

Properties

JButton
Methods

Events

Using a GUI Component
1. Create it
Instantiate object: b = new JButton(press me);
2. Configure it
Properties: b.text = press me; [avoided in java]
Methods: b.setText(press me);
3. Add it
panel.add(b);
JButton
4. Listen to it
Events: Listeners
Anatomy of an Application GUI
GUI Internal structure

JFrame JFrame
JPanel containers

JPanel
JButton

JButton JLabel
JLabel
Using a GUI Component 2
1. Create it
2. Configure it order
3. Add children (if container) important

4. Add to parent (if not JFrame)


5. Listen to it
Build from bottom up
Create: Listener
Frame
Panel
JLabel JButton
Components
Listeners
Add: (bottom up) JPanel
listeners into components
components into panel
panel into frame
JFrame
Code
JFrame f = new JFrame(title);
JPanel p = new JPanel( );
JButton b = new JButton(press me);

p.add(b); // add button to panel


f.setContentPane(p); // add panel to frame

f.show();
press me
Application Code
import javax.swing.*;

class hello {
public static void main(String[] args){
JFrame f = new JFrame(title);
JPanel p = new JPanel();
JButton b = new JButton(press me);

p.add(b); // add button to panel


f.setContentPane(p); // add panel to frame

f.show();
}
press me
}
Layout Managers
Automatically control placement of components
in a panel
Why?

Layout Manager Heuristics
null FlowLayout GridLayout

none,
Left to right,
programmer
Top to bottom
sets x,y,w,h

BorderLayout CardLayout GridBagLayout


n

w c e One at a time JButton

s
Combinations

JButton JButton

JTextArea
Combinations

JButton JButton
JFrame

n JPanel: FlowLayout
JPanel: BorderLayout

c
JTextArea
Code: null layout
JFrame f = new JFrame(title);
JPanel p = new JPanel( );
JButton b = new JButton(press me);

b.setBounds(new Rectangle(10,10, 100,50));


p.setLayout(null); // x,y layout
p.add(b);
f.setContentPane(p);
press me
Code: FlowLayout
JFrame f = new JFrame(title);
JPanel p = new JPanel( );
FlowLayout L = new FlowLayout( );
JButton b1 = new JButton(press me);
JButton b2 = new JButton(then me);

p.setLayout(L);
p.add(b1);
press me then me
p.add(b2);
f.setContentPane(p);

Set layout mgr before adding components


Applets
JApplet
JApplet is like a JFrame
Already has a panel
Access panel with JApplet.getContentPane( )
contentPane

import javax.swing.*;

JButton
class hello extends JApplet {
public void init(){
JButton b = new JButton(press me);
getContentPane().add(b);
}
}
Applet Methods
Called by browser:

init( ) - initialization
start( ) - resume processing (e.g. animations)
stop( ) - pause
destroy( ) - cleanup
paint( ) - redraw stuff (expose event)
Application + Applet
import javax.swing.*;

class helloApp {
Command line Browser
public static void main(String[] args){
// create Frame and put my mainPanel in it
JFrame f = new JFrame(title);
mainPanel p = new mainPanel();
f.setContentPane(p);

}
f.show(); JFrame or JApplet
}

class helloApplet extends JApplet {


public void init(){
contentPane
// put my mainPanel in the Applet
mainPanel p = new mainPanel();
getContentPane().add(p);
}
}

// my main GUI is in here:


class mainPanel extends JPanel { JPanel
mainPanel(){
setLayout(new FlowLayout());
JButton b = new JButton(press me);
add(b);
} JButton
}
Applet Security
No read/write on client machine
Cant execute programs on client machine
Communicate only with server
Java applet window Warning
In JBuilder

You might also like