下面这段代码中,两个按钮,怎么只有按一次时才管事呢?后来再按就不起作用了……package calcullator;import java.awt.Color;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.JButton;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.TitledBorder;public class Calculator extends JFrame { private JTextArea resultArea;
/**
 * Launch the application
 * @param args
 */
public static void main(String args[]) {
try {
Calculator frame = new Calculator();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} protected double p1;
protected double p2;
protected double mi;
protected double p3;
protected double mj;
protected double mNumber1;
protected double mNumber2; /**
 * Create the frame
 */
public Calculator() {
super();
setBounds(100, 100, 570, 459);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);

getContentPane().setLayout(null); final JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(null, "第一组分时:", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
panel.setLayout(null);
panel.setBounds(10, 10, 236, 162);
getContentPane().add(panel); final JLabel label = new JLabel();
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setText("空瓶时(P1)");
label.setBounds(10, 25, 108, 15);
panel.add(label); p1Field = new JTextField();
p1Field.setHorizontalAlignment(SwingConstants.CENTER);
p1Field.setBounds(125, 22, 72, 15);
panel.add(p1Field); final JLabel label_1 = new JLabel();
label_1.setHorizontalAlignment(SwingConstants.CENTER);
label_1.setText("第一组分时(P2)");
label_1.setBounds(10, 46, 120, 15);
panel.add(label_1); p2Field = new JTextField();
p2Field.setHorizontalAlignment(SwingConstants.CENTER);
p2Field.setBounds(125, 46, 72, 15);
panel.add(p2Field); final JLabel label_2 = new JLabel();
label_2.setHorizontalAlignment(SwingConstants.CENTER);
label_2.setText("砝码修正(bi)");
label_2.setBounds(10, 67, 108, 15);
panel.add(label_2); biField = new JTextField();
biField.setHorizontalAlignment(SwingConstants.CENTER);
biField.setBounds(125, 67, 72, 15);
panel.add(biField); final JLabel label_3 = new JLabel();
label_3.setHorizontalAlignment(SwingConstants.CENTER);
label_3.setText("浮力修正(Fi)");
label_3.setBounds(10, 88, 108, 15);
panel.add(label_3); fiField = new JTextField();
fiField.setHorizontalAlignment(SwingConstants.CENTER);
fiField.setBounds(125, 88, 72, 15);
panel.add(fiField); final JLabel label_4 = new JLabel();
label_4.setHorizontalAlignment(SwingConstants.CENTER);
label_4.setText("分子量");
label_4.setBounds(20, 109, 60, 15);
panel.add(label_4); mWhtField1 = new JTextField();

mWhtField1.setHorizontalAlignment(SwingConstants.CENTER);
mWhtField1.setBounds(125, 109, 72, 15);
panel.add(mWhtField1); final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String p1Str = p1Field.getText();
p1 = Double.valueOf(p1Str);
String p2Str = p2Field.getText();
p2 = Double.valueOf(p2Str);
String biStr = biField.getText();
Double bi = Double.valueOf(biStr);
String fiStr = fiField.getText();
Double fi = Double.valueOf(fiStr);

Double mW1 = Double.valueOf(mWhtField1.getText());

mi = p1-p2+bi+fi;

mNumber1 = mi/mW1;

resultArea.append("p1:"+p1Str+"  p2:"+p2Str+"  bi:"+biStr+"  Fi:"+fiStr+"\n");
resultArea.append("mi = p1-p2+bi+fi:  "+mi+"\n");
resultArea.append("组分一的摩尔数为:  "+mNumber1+"\n");
}
});
button.setText("组分一的摩尔数");
button.setBounds(30, 130, 167, 23);
panel.add(button); final JPanel panel_1 = new JPanel();
panel_1.setBorder(new TitledBorder(null, "第一组分+第二组分:", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
panel_1.setLayout(null);
panel_1.setBounds(252, 10, 302, 162);
getContentPane().add(panel_1); final JLabel label_1_1 = new JLabel();
label_1_1.setHorizontalAlignment(SwingConstants.CENTER);
label_1_1.setText("第一组分+第二组分时(P3)");
label_1_1.setBounds(10, 23, 176, 15);
panel_1.add(label_1_1); p3Field_1 = new JTextField();
p3Field_1.setHorizontalAlignment(SwingConstants.CENTER);
p3Field_1.setBounds(192, 23, 72, 15);
panel_1.add(p3Field_1); final JLabel label_2_1 = new JLabel();
label_2_1.setHorizontalAlignment(SwingConstants.CENTER);
label_2_1.setText("砝码修正(bj)");
label_2_1.setBounds(10, 44, 176, 15);
panel_1.add(label_2_1); bjField = new JTextField();
bjField.setHorizontalAlignment(SwingConstants.CENTER);
bjField.setBounds(192, 44, 72, 15);
panel_1.add(bjField); final JLabel label_3_1 = new JLabel();
label_3_1.setHorizontalAlignment(SwingConstants.CENTER);
label_3_1.setText("浮力修正(Fj)");
label_3_1.setBounds(20, 65, 166, 15);
panel_1.add(label_3_1); fjField = new JTextField();
fjField.setHorizontalAlignment(SwingConstants.CENTER);
fjField.setBounds(192, 65, 72, 15);
panel_1.add(fjField); final JLabel label_4_1 = new JLabel();
label_4_1.setHorizontalAlignment(SwingConstants.CENTER);
label_4_1.setText("分子量");
label_4_1.setBounds(63, 86, 60, 15);
panel_1.add(label_4_1); mWhtField2 = new JTextField();
mWhtField2.setHorizontalAlignment(SwingConstants.CENTER);
mWhtField2.setBounds(192, 86, 72, 15);
panel_1.add(mWhtField2); final JButton button_1 = new JButton();
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String p3Str = p3Field_1.getText();
p3 = Double.valueOf(p3Str);
String bjStr = bjField.getText();
Double bj = Double.valueOf(bjStr);
String fjStr = fjField.getText();
Double fj = Double.valueOf(fjStr);

Double mW2 = Double.valueOf(mWhtField2.getText());

mj = p2-p3+bj+fj;
//System.out.println(p2+"\n"+p3+"\n"+bj+"\n"+fj);
mNumber2 = mj/mW2;

resultArea.setText("");
resultArea.append("p3:"+p3Str+"  bj:"+bjStr+"  Fj:"+fjStr+"\n");
resultArea.append("mj = p2-p3+bj+fj:  "+mj+"\n");
resultArea.append("组二的摩尔数为:  "+mNumber2+"\n");
}
});
button_1.setText("组分二的摩尔数");
button_1.setBounds(81, 129, 150, 23);
panel_1.add(button_1); final JLabel label_5 = new JLabel();
label_5.setHorizontalAlignment(SwingConstants.CENTER);
label_5.setText("结果显示:");
label_5.setBounds(10, 309, 91, 15);
getContentPane().add(label_5); resultArea = new JTextArea();
resultArea.setForeground(new Color(0, 0, 255));
resultArea.setFont(new Font("", Font.BOLD, 18));
resultArea.setEditable(false);
resultArea.setFocusable(false);
resultArea.setBounds(10, 330, 544, 79);
getContentPane().add(resultArea);

}

private JTextField mWhtField2;
private JTextField fjField;
private JTextField bjField;
private JTextField p3Field_1;
private JTextField mWhtField1;
private JTextField fiField;
private JTextField biField;
private JTextField p2Field;
private JTextField p1Field;}高手帮俺看看吧,那是给一朋友做的软件,弄不出就丢人了 :(