Introduction to Java GUI Programming

 
Java GUI
 
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
Methods
Events
JButton
 
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);
4.
Listen to it
Events:   Listeners
JButton
 
Anatomy of an Application GUI
JPanel
JButton
 
JFrame
JLabel
 
GUI
 
Internal structure
JFrame
JPanel
JButton
JLabel
 
containers
 
Using a GUI Component 2
 
1.
Create it
2.
Configure it
3.
Add children  (if container)
4.
Add to parent  (if not JFrame)
5.
Listen to it
 
order
important
 
Build from bottom up
 
Create:
Frame
Panel
Components
Listeners
Add:  (bottom up)
listeners into components
components into panel
panel into frame
JPanel
JButton
Listener
JFrame
JLabel
 
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.setVisible(true);
 
}
}
press me
 
Layout Manager Heuristics
Left to right,
Top to bottom
c
 
n
 
s
 
e
 
w
 
FlowLayout
 
GridLayout
 
BorderLayout
none,
programmer
sets x,y,w,h
 
null
One at a time
 
CardLayout
 
GridBagLayout
JButton
 
Combinations
JButton
JButton
JTextArea
 
Combinations
n
 
JPanel:  BorderLayout
 
 
c
 
JFrame
JPanel:  FlowLayout
JButton
JButton
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);
p.add(b2);
f.setContentPane(p);
 
Set layout mgr before adding components
press me
then me
 
Applets
 
JApplet is like a JFrame
Already has a panel
Access panel with JApplet.getContentPane( )
 
import javax.swing.*;
 
class hello 
extends JApplet
 {
 
public void 
init
(){
  
JButton b = new JButton(“press me”);
  
getContentPane().add(b);
 
}
}
JApplet
contentPane
JButton
 
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 {
 
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();
 
}
}
 
class helloApplet extends JApplet {
 
public void init(){
  
// put my mainPanel in the Applet
  
mainPanel p = new mainPanel();
  
getContentPane().add(p);
 
}
}
 
// my main GUI is in here:
class mainPanel extends JPanel {
 
mainPanel(){
  
setLayout(new FlowLayout());
  
JButton b = new JButton(“press me”);
  
add(b);
 
}
}
JApplet
contentPane
JPanel
JFrame
JButton
 
or
Browser
Command line
 
Applet Security
 
No read/write on client machine
Can’t execute programs on client machine
Communicate only with server
“Java applet window” Warning
Slide Note
Embed
Share

Java GUI programming involves transitioning from AWT to Swing, utilizing prebuilt components, and understanding the anatomy of a GUI application. Learn how to create, configure, and interact with GUI components such as buttons and labels, and build applications from the bottom up. Explore sample code snippets to kickstart your GUI development journey.

  • Java
  • GUI programming
  • Swing
  • AWT
  • components

Uploaded on Sep 12, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Java GUI

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

  3. Swing Set Demo J2sdk/demo/jfc/SwingSet2 Many predefined GUI components

  4. GUI Component API Java: GUI component = class Properties Methods Events JButton

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

  6. Anatomy of an Application GUI GUI Internal structure JFrame JFrame JPanel containers JPanel JButton JButton JLabel JLabel

  7. Using a GUI Component 2 1. Create it 2. Configure it 3. Add children (if container) 4. Add to parent (if not JFrame) 5. Listen to it order important

  8. Build from bottom up Create: Listener Frame Panel Components Listeners JButton JLabel Add: (bottom up) listeners into components components into panel panel into frame JPanel JFrame

  9. Code JFrame f = new JFrame( title ); JPanel p = new JPanel( ); JButton b = new JButton( press me ); p.add(b); f.setContentPane(p); // add panel to frame // add button to panel f.show(); press me

  10. 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); f.setContentPane(p); // add panel to frame // add button to panel } } f.setVisible(true); press me

  11. Layout Manager Heuristics FlowLayout GridLayout null none, Left to right, Top to bottom programmer sets x,y,w,h GridBagLayout BorderLayout CardLayout n w e JButton c One at a time s

  12. Combinations JButton JButton JTextArea

  13. Combinations JButton JButton JFrame n JPanel: FlowLayout JPanel: BorderLayout c JTextArea

  14. 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); p.add(b); f.setContentPane(p); // x,y layout press me

  15. 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); p.add(b2); f.setContentPane(p); press me then me Set layout mgr before adding components

  16. 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); } }

  17. Applet Methods Called by browser: init( ) start( ) - resume processing (e.g. animations) stop( ) - pause destroy( ) - cleanup paint( ) - redraw stuff ( expose event) - initialization

  18. Application + Applet import javax.swing.*; Command line Browser class helloApp { 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 JApplet or class helloApplet extends JApplet { public void init(){ // put my mainPanel in the Applet mainPanel p = new mainPanel(); getContentPane().add(p); } } contentPane // my main GUI is in here: class mainPanel extends JPanel { mainPanel(){ setLayout(new FlowLayout()); JButton b = new JButton( press me ); add(b); } } JPanel JButton

  19. Applet Security No read/write on client machine Can t execute programs on client machine Communicate only with server Java applet window Warning

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#