|
1. Introduction | |
2. Combining buttons and text fields | |
3. Combining buttons and text fields (Swing example) | |
4. Combining buttons and text areas (Swing example including append method) |
In this WWW page I intend to inlude further examples of GUIs involving buttons as and when the need arrises.
The code presented in Table 1 causes text to appear in the text field each time the button is pressed. Some example output is given in Figure 1.
// Button Example 1 // Frans Coenen // Thursday 13 March 2003 // Dept. of Comp. Sci., University of Liverpool import java.awt.*; import java.awt.event.*; public class ButtonExample1 extends Frame implements ActionListener, WindowListener { /* ------------------------------------------------- */ /* */ /* FIELDS */ /* */ /* ------------------------------------------------- */ private TextField aTextField = new TextField(45); private Button pushButton = new Button("press me"); private int numButtonPresses = 0; /* ------------------------------------------------- */ /* */ /* CONSTRUCTORS */ /* */ /* ------------------------------------------------- */ public ButtonExample1(String text) { super(text); setLayout(new FlowLayout()); setBackground(Color.yellow); addWindowListener(this); // Text fields add(aTextField); // Button Button pushButton = new Button("press me"); add(pushButton); // Register event handlers pushButton.addActionListener(this); } /* ------------------------------------------------- */ /* */ /* METHODS */ /* */ /* ------------------------------------------------- */ /* ACTION PERFORMED */ /* Process button press event */ public void actionPerformed(ActionEvent event) { numButtonPresses++; if (event.getActionCommand().equals("press me")) { aTextField.setText("Number of button presses = " + numButtonPresses); } } /* WINDOW EVENT HANDLERS */ /* Window Closing */ public void windowClosing(WindowEvent event) { System.exit(0); } /* Window Closed */ public void windowClosed(WindowEvent event) {} /* Window Deiconified */ public void windowDeiconified(WindowEvent event) {} /* Window Iconified */ public void windowIconified(WindowEvent event) {} /* Window Activated */ public void windowActivated(WindowEvent event) {} /* Window Deactivated */ public void windowDeactivated(WindowEvent event) {} /* Window Opened */ public void windowOpened(WindowEvent event) {} } /* -------------------------------------------------- */ /* */ /* APPLICATION CLASS */ /* */ /* -------------------------------------------------- */ class ButtonExample1App { /* Main method */ public static void main(String[] args) { ButtonExample1 screen = new ButtonExample1("Button example1 1"); screen.setSize(500,100); screen.setVisible(true); } } |
Table 1:Linking button presses and text fields
Figure 1: Some output produced by code presemted in Table 1
The Java code presented in Table 2 has the same functionality to that presented in table 1 but is encoded using Java Swing. Some sample output is presented in Figure 2.
// Button Example 2 (Swing) // Frans Coenen // Thursday 13 March 2003 // Dept. of Comp. Sci., University of Liverpool import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonExample2 extends JFrame implements ActionListener { /* ------------------------------------------------- */ /* */ /* FIELDS */ /* */ /* ------------------------------------------------- */ private JTextField aTextField = new JTextField(40); private JButton pushButton = new JButton("press me"); private int numButtonPresses = 0; /* ------------------------------------------------- */ /* */ /* CONSTRUCTORS */ /* */ /* ------------------------------------------------- */ public ButtonExample2(String text) { super(text); Container container = getContentPane(); container.setLayout(new FlowLayout()); container.setBackground(Color.yellow); // Text fields container.add(aTextField); // Button container.add(pushButton); // Register event handlers pushButton.addActionListener(this); } /* ------------------------------------------------- */ /* */ /* METHODS */ /* */ /* ------------------------------------------------- */ /* ACTION PERFORMED */ /* Process button press event */ public void actionPerformed(ActionEvent event) { numButtonPresses++; if (event.getActionCommand().equals("press me")) { aTextField.setText("Number of button presses = " + numButtonPresses); } } } /* -------------------------------------------------- */ /* */ /* APPLICATION CLASS */ /* */ /* -------------------------------------------------- */ class ButtonExample2App { /* Main method */ public static void main(String[] args) { ButtonExample2 screen = new ButtonExample2("Button example1 1"); screen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); screen.setSize(500,100); screen.setVisible(true); } } |
Table 2:Linking button presses and text fields (Swing example)
Figure 2: Some output produced by code presemted in Table 2
The Java code presented in Table 3 uses a button to update a text area using the append method in rhe TextArea calss. Some sample output is presented in Figure 3.
// Button Example 3 (Swing) // Frans Coenen // Thursday 20 March 2003 // Dept. of Comp. Sci., University of Liverpool import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonExample3 extends JFrame implements ActionListener { /* ------------------------------------------------- */ /* */ /* FIELDS */ /* */ /* ------------------------------------------------- */ private JTextArea aTextArea = new JTextArea(7,40); private JButton pushButton = new JButton("press me"); private int numButtonPresses = 0; /* ------------------------------------------------- */ /* */ /* CONSTRUCTORS */ /* */ /* ------------------------------------------------- */ public ButtonExample3(String text) { super(text); Container container = getContentPane(); container.setLayout(new FlowLayout()); container.setBackground(Color.yellow); /// Text fields container.add(new JScrollPane(aTextArea)); // Button Button pushButton = new Button("press me"); container.add(pushButton); // Register event handlers pushButton.addActionListener(this); } /* ------------------------------------------------- */ /* */ /* METHODS */ /* */ /* ------------------------------------------------- */ /* ACTION PERFORMED */ /* Process button press event */ public void actionPerformed(ActionEvent event) { numButtonPresses++; if (event.getActionCommand().equals("press me")) { aTextArea.append("Number of button presses = " + numButtonPresses + "\n"); } } } /* -------------------------------------------------- */ /* */ /* APPLICATION CLASS */ /* */ /* -------------------------------------------------- */ class ButtonExample3App { /* Main method */ public static void main(String[] args) { ButtonExample3 screen = new ButtonExample3("Button example1 3"); screen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); screen.setSize(500,200); screen.setVisible(true); } } |
Table 3:Linking button presses and text areas (Swing example)
Figure 3: Some output produced by code presemted in Table 3
Created and maintained by Frans Coenen. Last updated 21 March 2003