Java: Example - ToUppercase
Level | Introductory |
Structure | Subclass JApplet and define main |
Components | JButton, JTextField |
Containers | JApplet, JFrame |
Layouts | FlowLayout |
Listeners | ActionListener as named inner class |
Dual applet and application
Applet. By extending JApplet, the class files that are produced can be used as an applet - the browser will call the constructor to create the applet.
Application. Any class that defines main can be used as an application. The main program creates a JFrame and creates an instance of itself (the applet) to use as the content pane.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
// File : GUI/components/calculators/toppercase/ToUpperCase.java // Purpose: Convert text in one field to uppercase in another. // Example of simple GUI. // Example of both application (has main) and applet (subclasses JApplet). // Tag : <applet code="ToUpperCase.class" height="63" width="589"></applet> // Author : Fred Swartz - 2006-12-16 - Placed in public domain. import java.awt.*; import java.awt.event.*; import javax.swing.*; //////////////////////////////////////////////////////////////// ToUpperCase public class ToUpperCase extends JApplet { //=================================================== instance variables private JTextField _inField = new JTextField(20); private JTextField _outField = new JTextField(20); //================================================================= main public static void main(String[] args) { JFrame window = new JFrame(); window.setTitle("ToUpperCase Example"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //... JApplet works fine as content pane in a window! window.setContentPane(new ToUpperCase()); window.pack(); // Layout components. window.setLocationRelativeTo(null); // Center window. window.setVisible(true); } //================================================== applet constructor public ToUpperCase() { //... Create or set attributes of components. _outField.setEditable(false); // Don't let user change output. JButton toUpperButton = new JButton("To Uppercase"); //... Add listener to button. toUpperButton.addActionListener(new UpperCaseAction()); //... Add components directly to applet. Don't need content pane. setLayout(new FlowLayout()); add(_inField); add(toUpperButton); add(_outField); } /////////////////////////////////// inner listener class UpperCaseAction class UpperCaseAction implements ActionListener { public void actionPerformed(ActionEvent e) { //... Convert text in one textfield to uppercase in another. String data = _inField.getText(); // Get the text String out = data.toUpperCase(); // Create uppercase version. _outField.setText(out); // Set output field } } } |
Possible extensions
- Add an "Exit" button that stops the program by calling
System.exit(0)
.