0

When I press a button that add two JTextField together the console is spamming of error's if there is no text in the text field. I wonder how I can make an if statement if there is some text in the text field and only when run a code. Here's my code!

public class java { 

public static void main (String []args){

    System.setProperty("apple.laf.useScreenMenuBar", "true");
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Calculator");

    int frameSizeX = 500;
    int frameSizeY = 184;

    final JPanel p = new JPanel();
    p.setPreferredSize( new Dimension(frameSizeX,frameSizeY) );

    final JFrame f = new JFrame ("Calculator");
    f.setSize(frameSizeX,frameSizeY);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //f.setResizable(false);
    f.getContentPane().add(p);

    /*JMenuBar bar = new JMenuBar ();

    JMenu menu = new JMenu("Test");

    menu.add(new JMenuItem("Hej"));

    menu.add(bar);*/

    final JLabel cardi = new JLabel ("First number");

    final JTextField firstField = new JTextField();
    firstField.setPreferredSize( new Dimension( 495, 24 ) );

    final JLabel perc = new JLabel("Second number");

    final JTextField secField = new JTextField(); 
    secField.setPreferredSize( new Dimension( 495, 24 ) );

    final JLabel answer = new JLabel("---");
    final JLabel answer2 = new JLabel();
    answer2.setForeground(Color.red);

    final JButton percButt = new JButton("Percentage");
    percButt.setPreferredSize(new Dimension(120, 24));
    percButt.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt){

            p.getRootPane().setDefaultButton(percButt);

            double A = Double.parseDouble(firstField.getText());
            double B = Double.parseDouble(secField.getText());
            double C = A/100;
            double D = C*B;

            firstField.setText("" + D);
            secField.setText("");

            answer.setText(A + " % " + B + " = ");
            answer2.setText("" + D);
          }
    });

    final JButton subButt = new JButton("Subtraction");
    subButt.setPreferredSize(new Dimension(120, 24));
    subButt.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt){

            p.getRootPane().setDefaultButton(subButt);  

            double A = Double.parseDouble(firstField.getText());
            double B = Double.parseDouble(secField.getText());
            double C = A - B;
            double D = C;

            firstField.setText("" + D);
            secField.setText("");

            answer.setText(A + " - " + B + " = ");
            answer2.setText("" + D);    
          }
    });

    final JButton divButt = new JButton("Division");
    divButt.setPreferredSize(new Dimension(120, 24));
    divButt.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt){

            p.getRootPane().setDefaultButton(divButt);

            double A = Double.parseDouble(firstField.getText());
            double B = Double.parseDouble(secField.getText());
            double C = A/B;
            double D = C;

            firstField.setText("" + D);
            secField.setText("");

            answer.setText(A + " / " + B + " = ");
            answer2.setText("" + D);
          }
    });

    final JButton addButt = new JButton("Addition");
    addButt.setPreferredSize(new Dimension(120, 24));
    addButt.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt){

            p.getRootPane().setDefaultButton(addButt);

            double A = Double.parseDouble(firstField.getText());
            double B = Double.parseDouble(secField.getText());
            double C = A + B;
            double D = C;

            firstField.setText("" + D);
            secField.setText("");

            answer.setText(A + " + " + B +" = ");
            answer2.setText("" + D);
          }
    });

    p.getRootPane().setDefaultButton(addButt);

    JButton sweButt = new JButton("Swedish");
    sweButt.setPreferredSize(new Dimension(245, 24));
    sweButt.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt){

                addButt.setText("Addition");
                subButt.setText("Subtraktion");
                divButt.setText("Division");
                percButt.setText("Procent");
                cardi.setText("Första talet");
                perc.setText("Andra talet");
                f.setTitle("Kalkulator");
          }
    });

    JButton engButt = new JButton("English");
    engButt.setPreferredSize(new Dimension(245, 24));
    engButt.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt){

                addButt.setText("Addition");
                subButt.setText("Subtraction");
                divButt.setText("Division");
                percButt.setText("Percentege");
                cardi.setText("First number");
                perc.setText("Second number");
                f.setTitle("Calculator");
          }
    });

    p.add(sweButt);
    p.add(engButt);
    p.add(cardi);
    p.add(firstField);
    p.add(perc);
    p.add(secField);
    p.add(addButt);
    p.add(subButt);
    p.add(divButt);
    p.add(percButt);
    p.add(answer);
    p.add(answer2);

    //f.setJMenuBar(bar);
    f.pack();
    f.setVisible(true);

}
}
Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
ntoonio
  • 3,024
  • 4
  • 24
  • 28
  • 2
    You are already using the necessary method to get the text. `firstField.getText()`. Now you just need to wrap it up in an `if` statement, and make sure the value is not `""` or `null`. – christopher Jan 12 '14 at 13:48
  • unrelated: [don't use setXXSize, ever](http://stackoverflow.com/a/7229519/203657) – kleopatra Jan 12 '14 at 14:38
  • Instead of `final JTextField firstField = new JTextField(); firstField.setPreferredSize( new Dimension( 495, 24 ) );` try something like `final JTextField firstField = new JTextField(25);`.. – Andrew Thompson Jan 12 '14 at 14:53

2 Answers2

0
    double A, B;
    try {
        A = Double.parseDouble(firstField.getText());
        B = Double.parseDouble(secField.getText());
    } catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(f, "Error", "Please enter two numbers",
            JOptionPane.ERROR_MESSAGE);
        return;
    }
    double C = A/100;
    double D = C*B;
Joop Eggen
  • 107,315
  • 7
  • 83
  • 138
  • You *might* consider putting the calculations that you have at the bottom *within* the try block. Else you risk doing calculations on dirty numbers. Just a thought. – Hovercraft Full Of Eels Jan 12 '14 at 17:33
0

This code checks that if your JTextField's are empty or not. If empty then it trigger's a message and returns to your main frame.

if(jTextField.getText().trim().length()==0 && jTextField1.getText().trim().length()==0){
JOptionPane.showMessageDialog(this,"Please enter two numbers");
return;
}
ravibagul91
  • 20,072
  • 5
  • 36
  • 59