package Second;
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
public class Test {
JFrame jf;
JLabel lb1;
JLabel lb2;
JLabel lb3;
JLabel lb4;
JTextArea txt1;
JTextArea txt2;
JTextField txt3;
JButton btn1;
JButton btn2;
public Test(){
jf=new JFrame("商场收银系统");
lb1=new JLabel("单价:");
lb2=new JLabel("数量:");
lb3=new JLabel("总计");
lb4=new JLabel("0.00");
txt1=new JTextArea(4,4);
txt2=new JTextArea(4,4);
txt3=new JTextField(50);
btn1=new JButton("确定");
btn2=new JButton("重置");
jf.add(lb1);
jf.add(lb2);
jf.add(lb3);
jf.add(lb4);
jf.add(txt1);
jf.add(txt2);
jf.add(txt3);
jf.add(btn1);
jf.add(btn2);
actionListener1 a=new actionListener1();
actionListener2 b=new actionListener2();
btn1.addActionListener(a);
btn2.addActionListener(b);
jf.setLayout(new FlowLayout(FlowLayout.LEFT,10,20));
jf.setSize(300,300);
jf.setVisible(true);
jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);
}});
}
class actionListener1 implements ActionListener{@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double TotalPrices=0;
double price=Double.parseDouble(txt1.getText());
double num=Double.parseDouble(txt2.getText());
//String A=txt1.getText();
//String B=txt2.getText();
//double C=Double.parseDouble(A);
//double D=Double.parseDouble(B);
TotalPrices=price*num;
double Total=0;
Total=Total+TotalPrices;
//String E=String.valueOf(Total);
txt3.setText("单价"+txt1.getText()+"数量"+txt2.getText()+"合计:"+String.valueOf(Total));
lb4.setText(String.valueOf(Total));
}
}
class actionListener2 implements ActionListener{@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
txt1.setText("");
txt2.setText("");txt3.setText("");
}
}}
package Second;public class Drive {
public static void main(String args[]){
Test t=new Test();
}
}
为什么直接给文本框赋值就能有结果
自己输入值就由异常啊?
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
public class Test {
JFrame jf;
JLabel lb1;
JLabel lb2;
JLabel lb3;
JLabel lb4;
JTextArea txt1;
JTextArea txt2;
JTextField txt3;
JButton btn1;
JButton btn2;
public Test(){
jf=new JFrame("商场收银系统");
lb1=new JLabel("单价:");
lb2=new JLabel("数量:");
lb3=new JLabel("总计");
lb4=new JLabel("0.00");
txt1=new JTextArea(4,4);
txt2=new JTextArea(4,4);
txt3=new JTextField(50);
btn1=new JButton("确定");
btn2=new JButton("重置");
jf.add(lb1);
jf.add(lb2);
jf.add(lb3);
jf.add(lb4);
jf.add(txt1);
jf.add(txt2);
jf.add(txt3);
jf.add(btn1);
jf.add(btn2);
actionListener1 a=new actionListener1();
actionListener2 b=new actionListener2();
btn1.addActionListener(a);
btn2.addActionListener(b);
jf.setLayout(new FlowLayout(FlowLayout.LEFT,10,20));
jf.setSize(300,300);
jf.setVisible(true);
jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);
}});
}
class actionListener1 implements ActionListener{@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double TotalPrices=0;
double price=Double.parseDouble(txt1.getText());
double num=Double.parseDouble(txt2.getText());
//String A=txt1.getText();
//String B=txt2.getText();
//double C=Double.parseDouble(A);
//double D=Double.parseDouble(B);
TotalPrices=price*num;
double Total=0;
Total=Total+TotalPrices;
//String E=String.valueOf(Total);
txt3.setText("单价"+txt1.getText()+"数量"+txt2.getText()+"合计:"+String.valueOf(Total));
lb4.setText(String.valueOf(Total));
}
}
class actionListener2 implements ActionListener{@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
txt1.setText("");
txt2.setText("");txt3.setText("");
}
}}
package Second;public class Drive {
public static void main(String args[]){
Test t=new Test();
}
}
为什么直接给文本框赋值就能有结果
自己输入值就由异常啊?
为什么两个输入要用TestArea呢?还弄那么大
别有空格,回车 就输入数字还是没问题的
因为写出来后又异常,出现的是
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "9,6"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Double.parseDouble(Double.java:540)
at Second.Test$actionListener1.actionPerformed(Test.java:55)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
后来才知道呢,是我的输入法有问......怎么说呢,很微妙的那种数字,于是就报异常了,不知道怎么截图,能给你看就好了,反正,后来就是好了......Thank you 啊~~