SlideShare a Scribd company logo
GUI Programming
using NetBeans
SWING API
GUI construction
• Elements in a (simple) GUI
– Frames, Panes and Dialogs
– Text fields
– Lists and Combo boxes
– Check and Radio buttons
• How to use GUI controls in an application?
RHS – SOC 2
GUI construction
• In general, we have two options when
constructing a GUI
– Build it ”by hand” using Swing API
– Use the NetBeans GUI Builder
• Using the GUI Builder is usually much easier
than hand-coding the GUI
• Does not give you complete control,
however…
RHS – SOC 3
GUI construction
RHS – SOC 4
GUI construction
• If you wish to construct a GUI manually, you
usually begin by creating a JFrame
• A JFrame object is essentially an empty
window, into which you can add containers for
GUI controls
• Typically, you will add a JPanel to the frame –
the JPanel object will contain the actual GUI
controls
RHS – SOC 5
GUI construction
public static void main(String[] args)
{
JFrame theFrame = new JFrame();
theFrame.setBounds(200, 200, 720, 450);
theFrame.setVisible(true);
JPanel thePanel = new JPanel();
theFrame.add(thePanel);
}
RHS – SOC 6
GUI construction
• On the JPanel object, various layout strategies
can be used
– Flow layout – left to right
– Border layout – groups into areas
– Grid layout – groups into a grid
• Border layout is default, and also most
commonly used
RHS – SOC 7
GUI construction
• Using border layout,
the panel is divided
into five areas
– Center
– North
– South
– East
– West
RHS – SOC 8
GUI construction
• If a control is put into an area, it will expand to
fill out the area
• Good when resizing, but may look weird…
• If you need a finer level of control, put a panel
inside a panel…
• …or maybe consider a different layout
RHS – SOC 9
GUI construction
public static void main(String[] args)
{
JFrame theFrame = new JFrame();
theFrame.setBounds(200, 200, 240, 150);
theFrame.setVisible(true);
JPanel thePanel = new JPanel();
thePanel.setLayout(new BorderLayout());
thePanel.add(new Button("Center"), BorderLayout.CENTER);
theFrame.add(thePanel);
}
RHS – SOC 10
Exercises
• Try out create an application
which looks like the picture to
the right, without using the GUI
Builder.
• That is, create it only by using the
Swing API methods as shown in
the presentation.
• Remember that you can put
panels within panels…
RHS – SOC 11
Text field
• Two common purposes:
– Allow the user to enter data as text
– Display text data to the user
• A text field can be ”enabled” or ”disabled”
– Enabled: Data can be entered
– Disabled: Data can only be displayed
• At some point we need to set or extract the
text from the text field
RHS – SOC 12
Text field
JFrame theFrame = new JFrame();
theFrame.setBounds(200, 200, 300, 300);
JPanel thePanel = new JPanel();
thePanel.setLayout(new BorderLayout());
JTextField theTextField = new JTextField();
thePanel.add(theTextField, BorderLayout.NORTH);
theFrame.add(thePanel);
theFrame.setVisible(true);
RHS – SOC 13
Text field
RHS – SOC 14
Text
field
Text field
• Enabling a text field
theTextField.setEditable(true);
• Disabling a text field
theTextField.setEditable(false);
• Setting the text in a text field
theTextField.setText("Greeting earthlings!");
• Getting the text from a text field
String s = theTextField.getText();
RHS – SOC 15
List box / Combo box
• A list (or combo) box enables the user to
choose an option between many alternatives
• List box: User can only choose between
specified alternatives
• Combo box: User can choose between
specified alternatives, or specify choice
manually (type it in)
RHS – SOC 16
List box / Combo box
Object[] choices =
{"One", "Two", "Three", "Four"};
JComboBox theBox = new JComboBox(choices);
theBox.setEditable(true);
thePanel.add(theBox, BorderLayout.NORTH);
RHS – SOC 17
List box / Combo box
RHS – SOC 18
Combo box
(editable)
List box / Combo box
• Enabling a Combo box
theBox.setEditable(true);
• Disabling a Combo box
theBox.setEditable(false);
• Setting the selection in a Combo box
theBox.setSelectedItem(”Three");
• Getting the selection from a Combo box
String s = (String)theBox.getSelectedItem();
RHS – SOC 19
Check boxes
• In some cases, the set of possible choices is
limited to two options
• Often a case of either/or, or perhaps on/off
• A Check box can only be in two states;
checked or unchecked
• Nice fit for binary choices
RHS – SOC 20
Check boxes
JCheckBox theBBox = new JCheckBox("Bold");
JCheckBox theIBox = new JCheckBox("Italic");
JCheckBox theUBox = new JCheckBox("Underline");
thePanel.add(theBBox,BorderLayout.WEST);
thePanel.add(theIBox,BorderLayout.NORTH);
thePanel.add(theUBox,BorderLayout.EAST);
RHS – SOC 21
Check boxes
RHS – SOC 22
Check boxes
• Enabling a Check box
theCBox.setEnabled(true);
• Disabling a Check box
theCBox.setEnabled(false);
• Setting the selection in a Check box
theCBox.setSelected(isSelected);
• Getting the selection from a Check box
boolean isSelected = theCBox.isSelected();
RHS – SOC 23
Radio buttons
• If the number of choices is few, and they are
mutually exclusive, use a group of Radio
buttons
• Only one button in a group of Radio buttons
can be selected
RHS – SOC 24
Radio buttons
JRadioButton small = new JRadioButton("Small");
JRadioButton medium = new JRadioButton("Medium");
JRadioButton large = new JRadioButton("Large");
ButtonGroup theGroup = new ButtonGroup();
theGroup.add(small);
theGroup.add(medium);
theGroup.add(large);
RHS – SOC 25
Radio buttons
RHS – SOC 26
Radio buttons
• Enabling a Radio button
theRB.setEnabled(true);
• Disabling a Radio button
theRB.setEnabled(false);
• Setting the selection in a Radio button
theRB.setSelected(isSelected);
• Getting the selection from a Radio button
boolean isSelected = theRB.isSelected();
RHS – SOC 27
Radio buttons
• Note that even though only
one Radio button in a group
can be selected, we must call
isSelected() until we find
it…
• Putting Radio buttons in a
group does not make them
appear grouped visually
RHS – SOC 28
Exercises
• Try out create an applica-tion
which looks like the picture to
the right, without using the
GUI Builder.
• Only one radio button should
be selected at all times
• Font for a control can be set
using the setFont method
(see the docu-mentation)
RHS – SOC 29
The concept of events
• On the inside (code), GUI code
has a very different structure
than ”usual” code
• Usual code is driven by con-
ditions and various control
structures (if, while,…)
• GUI code is driven by events
RHS – SOC 30
The concept of events
• Execution of GUI code is much more
unpredictable than for usual code
• We cannot predict – or dictate – what the user
does, so we must always handle any possible
action the user can do
• A user action related to the GUI is called an
event
RHS – SOC 31
The concept of events
RHS – SOC 32
The concept of events
• Almost all actions the user performs will
”trigger” an event for us to handle
– Moving the mouse
– Clicking on a button
– Writing text in a text box
– ….and so on
• There are hundreds of possible events!
RHS – SOC 33
The concept of events
• Fortunately, is it optional to
respond to an event
• We only need to do so, if we
want any special action to
happen
• If that is the case, we must
write an event handler for
that particular event
RHS – SOC 34
Relevant events
• Unless we need more sophisticated behavior,
we only need to handle two types of events
– Choosing a menu item
– Clicking on a push button
• In both cases, we must create an object which
can listen for events from the control in
question
RHS – SOC 35
Relevant events
• An event listener class must implement a
…Listener interface (there are several)
• From pushbuttons and menu items, we get
”action events”, so a listener class must
implement the ActionListener interface
• This interface has a single method:
actionPerformed
RHS – SOC 36
Relevant events
public class MyListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
System.out.println("Button clicked");
}
}
private ActionListener theListener;
theListener = new MyListener();
...
JButton theButton = new JButton("Click Me!");
theButton.addActionListener(theListener);
RHS – SOC 37
Relevant events
• A very common dialog construction:
– Add an ”OK” button
– In the event listener for the button
• Retrieve data from the relevant controls
• Process the data
• Close the dialog
• Pressing ”OK” means: ”Now my input is ready,
do something with it!”
RHS – SOC 38
Wrapping up
• GUI programming is somewhat difficult and
tedious
• Unless you need something special, use the
NetBeans GUI Builder!
• Always nice to know what does on under the
hood…
• You can – to some degree – mix manual
coding and using the GUI Builder
RHS – SOC 39
Exercises
• Try out create an application
which looks like the picture to
the right, without using the GUI
Builder.
• Create event listeners for the
buttons, that print the texts:
– ”Brrr” for Arctic and Antarctic
– ”Puhh” for America and Asia
– ”Wet!” for Atlantic
• You should not write more than
three event listeners!
RHS – SOC 40

More Related Content

RTF
Windows xp run commands and shortcuts
DOCX
Shortcut key for windows
DOC
Windows XP Home / Pro Run Commands an...
PDF
Basic linux commands
PPTX
Vs c# lecture1
PPTX
GUI Programming using NetBeans (1).pptx
PDF
student application form Java Netbeans
PPTX
Water Distribution Control System
Windows xp run commands and shortcuts
Shortcut key for windows
Windows XP Home / Pro Run Commands an...
Basic linux commands
Vs c# lecture1
GUI Programming using NetBeans (1).pptx
student application form Java Netbeans
Water Distribution Control System

Similar to GUI Programming using NetBeans.pptx (20)

PPT
03_GUI.ppt
PPTX
Gui in matlab :
PDF
PPTX
VL/HCC 2013 - Visualization of Fine-Grained Code Change History
PPT
Swing demo presentation for the swing java
PPT
14a-gui.ppt
PPT
Java Swing JFC
PPT
Swing basics
PDF
Java GUI Programming for beginners-graphics.pdf
PPT
Swing_Introduction and working java.ppt
PPTX
Chap 1 - Introduction GUI.pptx
PDF
28-GUI application.pptx.pdf
PDF
React Native custom components
PDF
Programming Without Coding Technology (PWCT) - Play Flash Movie
PDF
Programming Without Coding Technology (PWCT) - Simple GUI Application
PPTX
First fare 2010 lab-view creating custom dashboards
PPTX
Complete java swing
PPT
28 awt
PDF
MOPCON 2014 - Best software architecture in app development
PPT
Input and Interaction
03_GUI.ppt
Gui in matlab :
VL/HCC 2013 - Visualization of Fine-Grained Code Change History
Swing demo presentation for the swing java
14a-gui.ppt
Java Swing JFC
Swing basics
Java GUI Programming for beginners-graphics.pdf
Swing_Introduction and working java.ppt
Chap 1 - Introduction GUI.pptx
28-GUI application.pptx.pdf
React Native custom components
Programming Without Coding Technology (PWCT) - Play Flash Movie
Programming Without Coding Technology (PWCT) - Simple GUI Application
First fare 2010 lab-view creating custom dashboards
Complete java swing
28 awt
MOPCON 2014 - Best software architecture in app development
Input and Interaction
Ad

GUI Programming using NetBeans.pptx

  • 2. GUI construction • Elements in a (simple) GUI – Frames, Panes and Dialogs – Text fields – Lists and Combo boxes – Check and Radio buttons • How to use GUI controls in an application? RHS – SOC 2
  • 3. GUI construction • In general, we have two options when constructing a GUI – Build it ”by hand” using Swing API – Use the NetBeans GUI Builder • Using the GUI Builder is usually much easier than hand-coding the GUI • Does not give you complete control, however… RHS – SOC 3
  • 5. GUI construction • If you wish to construct a GUI manually, you usually begin by creating a JFrame • A JFrame object is essentially an empty window, into which you can add containers for GUI controls • Typically, you will add a JPanel to the frame – the JPanel object will contain the actual GUI controls RHS – SOC 5
  • 6. GUI construction public static void main(String[] args) { JFrame theFrame = new JFrame(); theFrame.setBounds(200, 200, 720, 450); theFrame.setVisible(true); JPanel thePanel = new JPanel(); theFrame.add(thePanel); } RHS – SOC 6
  • 7. GUI construction • On the JPanel object, various layout strategies can be used – Flow layout – left to right – Border layout – groups into areas – Grid layout – groups into a grid • Border layout is default, and also most commonly used RHS – SOC 7
  • 8. GUI construction • Using border layout, the panel is divided into five areas – Center – North – South – East – West RHS – SOC 8
  • 9. GUI construction • If a control is put into an area, it will expand to fill out the area • Good when resizing, but may look weird… • If you need a finer level of control, put a panel inside a panel… • …or maybe consider a different layout RHS – SOC 9
  • 10. GUI construction public static void main(String[] args) { JFrame theFrame = new JFrame(); theFrame.setBounds(200, 200, 240, 150); theFrame.setVisible(true); JPanel thePanel = new JPanel(); thePanel.setLayout(new BorderLayout()); thePanel.add(new Button("Center"), BorderLayout.CENTER); theFrame.add(thePanel); } RHS – SOC 10
  • 11. Exercises • Try out create an application which looks like the picture to the right, without using the GUI Builder. • That is, create it only by using the Swing API methods as shown in the presentation. • Remember that you can put panels within panels… RHS – SOC 11
  • 12. Text field • Two common purposes: – Allow the user to enter data as text – Display text data to the user • A text field can be ”enabled” or ”disabled” – Enabled: Data can be entered – Disabled: Data can only be displayed • At some point we need to set or extract the text from the text field RHS – SOC 12
  • 13. Text field JFrame theFrame = new JFrame(); theFrame.setBounds(200, 200, 300, 300); JPanel thePanel = new JPanel(); thePanel.setLayout(new BorderLayout()); JTextField theTextField = new JTextField(); thePanel.add(theTextField, BorderLayout.NORTH); theFrame.add(thePanel); theFrame.setVisible(true); RHS – SOC 13
  • 14. Text field RHS – SOC 14 Text field
  • 15. Text field • Enabling a text field theTextField.setEditable(true); • Disabling a text field theTextField.setEditable(false); • Setting the text in a text field theTextField.setText("Greeting earthlings!"); • Getting the text from a text field String s = theTextField.getText(); RHS – SOC 15
  • 16. List box / Combo box • A list (or combo) box enables the user to choose an option between many alternatives • List box: User can only choose between specified alternatives • Combo box: User can choose between specified alternatives, or specify choice manually (type it in) RHS – SOC 16
  • 17. List box / Combo box Object[] choices = {"One", "Two", "Three", "Four"}; JComboBox theBox = new JComboBox(choices); theBox.setEditable(true); thePanel.add(theBox, BorderLayout.NORTH); RHS – SOC 17
  • 18. List box / Combo box RHS – SOC 18 Combo box (editable)
  • 19. List box / Combo box • Enabling a Combo box theBox.setEditable(true); • Disabling a Combo box theBox.setEditable(false); • Setting the selection in a Combo box theBox.setSelectedItem(”Three"); • Getting the selection from a Combo box String s = (String)theBox.getSelectedItem(); RHS – SOC 19
  • 20. Check boxes • In some cases, the set of possible choices is limited to two options • Often a case of either/or, or perhaps on/off • A Check box can only be in two states; checked or unchecked • Nice fit for binary choices RHS – SOC 20
  • 21. Check boxes JCheckBox theBBox = new JCheckBox("Bold"); JCheckBox theIBox = new JCheckBox("Italic"); JCheckBox theUBox = new JCheckBox("Underline"); thePanel.add(theBBox,BorderLayout.WEST); thePanel.add(theIBox,BorderLayout.NORTH); thePanel.add(theUBox,BorderLayout.EAST); RHS – SOC 21
  • 23. Check boxes • Enabling a Check box theCBox.setEnabled(true); • Disabling a Check box theCBox.setEnabled(false); • Setting the selection in a Check box theCBox.setSelected(isSelected); • Getting the selection from a Check box boolean isSelected = theCBox.isSelected(); RHS – SOC 23
  • 24. Radio buttons • If the number of choices is few, and they are mutually exclusive, use a group of Radio buttons • Only one button in a group of Radio buttons can be selected RHS – SOC 24
  • 25. Radio buttons JRadioButton small = new JRadioButton("Small"); JRadioButton medium = new JRadioButton("Medium"); JRadioButton large = new JRadioButton("Large"); ButtonGroup theGroup = new ButtonGroup(); theGroup.add(small); theGroup.add(medium); theGroup.add(large); RHS – SOC 25
  • 27. Radio buttons • Enabling a Radio button theRB.setEnabled(true); • Disabling a Radio button theRB.setEnabled(false); • Setting the selection in a Radio button theRB.setSelected(isSelected); • Getting the selection from a Radio button boolean isSelected = theRB.isSelected(); RHS – SOC 27
  • 28. Radio buttons • Note that even though only one Radio button in a group can be selected, we must call isSelected() until we find it… • Putting Radio buttons in a group does not make them appear grouped visually RHS – SOC 28
  • 29. Exercises • Try out create an applica-tion which looks like the picture to the right, without using the GUI Builder. • Only one radio button should be selected at all times • Font for a control can be set using the setFont method (see the docu-mentation) RHS – SOC 29
  • 30. The concept of events • On the inside (code), GUI code has a very different structure than ”usual” code • Usual code is driven by con- ditions and various control structures (if, while,…) • GUI code is driven by events RHS – SOC 30
  • 31. The concept of events • Execution of GUI code is much more unpredictable than for usual code • We cannot predict – or dictate – what the user does, so we must always handle any possible action the user can do • A user action related to the GUI is called an event RHS – SOC 31
  • 32. The concept of events RHS – SOC 32
  • 33. The concept of events • Almost all actions the user performs will ”trigger” an event for us to handle – Moving the mouse – Clicking on a button – Writing text in a text box – ….and so on • There are hundreds of possible events! RHS – SOC 33
  • 34. The concept of events • Fortunately, is it optional to respond to an event • We only need to do so, if we want any special action to happen • If that is the case, we must write an event handler for that particular event RHS – SOC 34
  • 35. Relevant events • Unless we need more sophisticated behavior, we only need to handle two types of events – Choosing a menu item – Clicking on a push button • In both cases, we must create an object which can listen for events from the control in question RHS – SOC 35
  • 36. Relevant events • An event listener class must implement a …Listener interface (there are several) • From pushbuttons and menu items, we get ”action events”, so a listener class must implement the ActionListener interface • This interface has a single method: actionPerformed RHS – SOC 36
  • 37. Relevant events public class MyListener implements ActionListener { public void actionPerformed(ActionEvent event) { System.out.println("Button clicked"); } } private ActionListener theListener; theListener = new MyListener(); ... JButton theButton = new JButton("Click Me!"); theButton.addActionListener(theListener); RHS – SOC 37
  • 38. Relevant events • A very common dialog construction: – Add an ”OK” button – In the event listener for the button • Retrieve data from the relevant controls • Process the data • Close the dialog • Pressing ”OK” means: ”Now my input is ready, do something with it!” RHS – SOC 38
  • 39. Wrapping up • GUI programming is somewhat difficult and tedious • Unless you need something special, use the NetBeans GUI Builder! • Always nice to know what does on under the hood… • You can – to some degree – mix manual coding and using the GUI Builder RHS – SOC 39
  • 40. Exercises • Try out create an application which looks like the picture to the right, without using the GUI Builder. • Create event listeners for the buttons, that print the texts: – ”Brrr” for Arctic and Antarctic – ”Puhh” for America and Asia – ”Wet!” for Atlantic • You should not write more than three event listeners! RHS – SOC 40