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