Here is the ExampleForm.Java
package com.spconger.SwingExample;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ExampleForm {
//declare the form objects
private JFrame frame;
private JPanel panel;
private JLabel lblNumber;
private JTextField txtNumber;
private JButton btnSubmit;
private JLabel lblPrime;
private final int OFFSETX=200;
private final int OFFSETY=300;
private final int X=420;
private final int Y=150;
public ExampleForm(){
createFrame();
}
private void createFrame(){
frame = new JFrame();
frame.add(createPanel());
frame.setTitle("Prime Number Calculator");
frame.setBounds(OFFSETX,OFFSETY,X,Y);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private JPanel createPanel(){
panel = new JPanel();
panel.setLayout(new GridLayout(2,2,5,5));
lblNumber=new JLabel("Enter an integer between 1 and 41");
txtNumber=new JTextField();
btnSubmit=new JButton("Get Prime");
btnSubmit.addActionListener(new SubmitListener());
lblPrime = new JLabel();
panel.add(lblNumber);
panel.add(txtNumber);
panel.add(btnSubmit);
panel.add(lblPrime);
return panel;
}
private class SubmitListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent arg0) {
try{
int number = Integer.parseInt(txtNumber.getText());
if(number > 0 && number < 42){
int prime = number * number - number + 41;
lblPrime.setText(Integer.toString(prime));
}//end if
else{
JOptionPane.showMessageDialog
(null,"Enter an integer between 1 and 41", "Invalid Number",0);
txtNumber.setText("");
txtNumber.grabFocus();
}//end else
}//end try
catch(NumberFormatException e){
JOptionPane.showMessageDialog
(null,"Not a valid number", "Invalid Number",0);
txtNumber.setText("");
txtNumber.grabFocus();
}//end catch
}
}
}
Here is the Program.java
package com.spconger.SwingExample;
public class Program {
public static void main(String[] args) {
ExampleForm ex = new ExampleForm();
}
}
Here is a picture of the form after pressing the button
No comments:
Post a Comment