下面这段代码中,两个按钮,怎么只有按一次时才管事呢?后来再按就不起作用了……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;}高手帮俺看看吧,那是给一朋友做的软件,弄不出就丢人了 :(
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;}高手帮俺看看吧,那是给一朋友做的软件,弄不出就丢人了 :(
是你的button的actionPerformed中 没有把textarea清空
只是append
然后你的textarea又没有滚动条 所以看不出来
resultArea.setText("");它实际上是运算了,但中是那个resultArea中没有显示出来而已。