I'm trying to create a simple GUI which takes two values and either subtracts/adds/divides dependant on which button the user selects. I'm comfortable with my code, but for some reason when I run my program, I'm not getting any visible frame, and I am also not getting any errors.
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Calc {
private JFrame frame;
private JTextField firstNumber;
private JTextField secondNumber;
private JTextField textField_2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Calc window = new Calc();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Calc() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("Simple Calculator");
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
firstNumber = new JTextField();
firstNumber.setBounds(28, 41, 156, 26);
frame.getContentPane().add(firstNumber);
firstNumber.setColumns(10);
secondNumber = new JTextField();
secondNumber.setBounds(28, 145, 156, 26);
frame.getContentPane().add(secondNumber);
secondNumber.setColumns(10);
JLabel lblNewLabel = new JLabel("First Number");
lblNewLabel.setBounds(28, 27, 110, 16);
frame.getContentPane().add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("Second Number");
lblNewLabel_1.setBounds(28, 131, 110, 16);
frame.getContentPane().add(lblNewLabel_1);
JLabel answerLabel = new JLabel("ANSWER:");
answerLabel.setFont(new Font("Lucida Grande", Font.PLAIN, 20));
answerLabel.setBounds(216, 46, 190, 16);
frame.getContentPane().add(answerLabel);
JButton plusButton = new JButton("Add");
plusButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
int number1 = Integer.parseInt(firstNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad first number.");
return;
}
try{
int number2 = Integer.parseInt(secondNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad second number.");
return;
}
int number1 = 0, number2 = 0;
int answer = number1 + number2;
answerLabel.setText("The answer is: "+answer);
}
});
plusButton.setToolTipText("Adds first from second number");
plusButton.setBounds(28, 183, 117, 29);
frame.getContentPane().add(plusButton);
JButton subtractButton = new JButton("Subtract");
subtractButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
int number1 = Integer.parseInt(firstNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad first number.");
return;
}
try{
int number2 = Integer.parseInt(secondNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad second number.");
return;
}
int number1 = 0, number2 = 0;
int answer = number1 - number2;
answerLabel.setText("The answer is: "+answer);
}
});
subtractButton.setToolTipText("Subtracts first from second number");
subtractButton.setBounds(157, 183, 117, 29);
frame.getContentPane().add(subtractButton);
JButton divideButton = new JButton("Divide");
divideButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
int number1 = Integer.parseInt(firstNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad first number.");
return;
}
try{
int number2 = Integer.parseInt(secondNumber.getText());
}
catch (Exception exc){
JOptionPane.showMessageDialog(frame,"Error: bad second number.");
return;
}
int number1 = 0, number2 = 0;
int answer = number1 / number2;
answerLabel.setText("The answer is: "+answer);
}
});
divideButton.setToolTipText("Divides first from second number");
divideButton.setBounds(289, 183, 117, 29);
frame.getContentPane().add(divideButton);
textField_2 = new JTextField();
textField_2.setBounds(216, 94, 130, 26);
frame.getContentPane().add(textField_2);
textField_2.setColumns(10);
}
}