当我按下一个按钮将两个JTextField
加在一起时,如果文本字段中没有文本,控制台就会发送错误信息。我想知道如果在文本字段中有一些文本,并且只有在运行代码时我才能做出if语句。这是我的代码!当JTextField为空时
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);
}
}
您已使用必要的方法获取文本。 'firstField.getText()'。现在你只需要把它包装在一个'if'语句中,并确保这个值不是''''或'null'。 – christopher
无关:[不要使用setXXSize,永远](http://stackoverflow.com/a/7229519/203657) – kleopatra
而不是'final JTextField firstField = new JTextField(); firstField.setPreferredSize(new Dimension(495,24));'尝试类似于'final JTextField firstField = new JTextField(25);'.. –