In: Computer Science
Code in Java
Change the instructionLabel to ask the user to enter a numeric value into the textField and click the button to convert the entered value from kilometers to miles (1.609344 km = 1 mile).
When the actionButton on the form is clicked, ActionWindow should take the value entered in the textField, convert it from kilometers to miles, and display the result in the resultField.
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ActionWindow extends JFrame {
JLabel label;
JButton button;
JFrame frame;
JTextField text;
public ActionWindow() {
label = new JLabel();
button = new JButton();
frame = new JFrame();
text = new JTextField();
}
public static void main(String[] args) {
WindowRunnable myWindow = new
WindowRunnable();
javax.swing.SwingUtilities.invokeLater(myWindow);
}
public static void createAndShowGUI() {
ActionWindow frame = new
ActionWindow();
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
public void addComponentsToPane(Container pane)
{
JPanel panel = new JPanel();
panel.add(label);
pane.add(panel);
JLabel instructionLabel = new
JLabel("");
panel.add(instructionLabel);
JTextField textField = new
JTextField("");
panel.add(textField);
JButton actionButton = new
JButton("");
panel.add(actionButton);
JLabel resultField = new
JLabel("");
panel.add(resultField);
}
}
class WindowRunnable implements Runnable {
public void run() {
ActionWindow.createAndShowGUI();
}
}
//Create class ActionWindow.java
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ActionWindow extends JFrame {
JLabel label;
JButton button;
JFrame frame;
JTextField text;
public ActionWindow() {
label = new JLabel();
button = new JButton();
frame = new JFrame();
text = new JTextField();
}
public static void main(String[] args) {
WindowRunnable myWindow = new WindowRunnable();
javax.swing.SwingUtilities.invokeLater(myWindow);
}
public static void createAndShowGUI() {
ActionWindow frame = new ActionWindow();
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.addComponentsToPane(frame.getContentPane());
frame.pack();
frame.setVisible(true);
}
public void addComponentsToPane(Container pane) {
JPanel panel = new JPanel();
panel.add(label);
pane.add(panel);
//change the label of instructionLabel
JLabel instructionLabel = new JLabel("Enter Kilometers to convert
to miles(Integer)");
panel.add(instructionLabel);
//set size to textField to get input
JTextField textField = new JTextField(12);
panel.add(textField);//add textfield to panel
JButton actionButton = new JButton("Convert to Miles");
panel.add(actionButton);//add button to panel
JLabel resultField = new JLabel("");//resultLabel to displayy
result
panel.add(resultField);//add result label to panel
actionButton.addActionListener(new ActionListener() {
//add action listener to button to calculate entered kilometers in
miles
@Override
public void actionPerformed(ActionEvent arg0) {
//after clicking button should print on window
if(textField.getText().toString().equals(""))
{
JOptionPane.showMessageDialog(panel, "Please enter kiltometers to
converts in miles");
}else
{
try
{
double
kilometers=Double.parseDouble(textField.getText().toString());//get
kilometers from user
double miles = kilometers * 0.621;//1.609344 km=1 mile, hence
resultField.setText(kilometers+" (km) = "+miles+" miles
");//display result to resulField
}
catch(NumberFormatException e)
{
//if kilometers is not in number format
JOptionPane.showMessageDialog(panel, "Please enter numbers
only");
}
}
}
});
panel.setPreferredSize(new Dimension(300, 190));//set preferrable
size to panel
}
}
class WindowRunnable implements Runnable {
public void run() {
ActionWindow.createAndShowGUI();//show window
}
}
___________________________________________________________________________________________
OUTPUT
____________________________________________________________________________________________