/*
* 事件处理方法(每次点击一个按钮,触发一个事件,就进入一次这个方法)
*/
public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
}
我的思路:其中设了几个属性:StringBuilder s1 = null;//放加号前面的值
StringBuilder s2 = null;//放加号
StringBuilder s3 = null;//放加好后面的值 //判断是不是=
//是:
//判断s1,s2,s3是否有一个为空
//是:输出错误
//不是:求和运算
//不是:
//判断s是不是数字
//1)是数字
//1 判断s2是否为空
//是:追加到s1
//不是:追加到s3
//2)不是数字
//判断是否是符号
//是:判断s1 是否为空
//是:输出有错!
//不是:判断s3是否是空
//是:追加到s2
//不是:输出有错!!
//不是:错误提示!
我自己编的:public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
String ss1 = "^[0-9]+$";
String ss2 = "^[+-*/]{1}$";
if(s.matches("^[=]{1}$")){
if(s1==null||s2==null||s3==null){
System.out.println("err!");
}else{
System.out.println(Integer.parseInt(s1.toString())+
s2.charAt(0)+
Integer.parseInt(s3.toString()));
}
}else{
if(s.matches(ss1)){
if(s2==null){
s1.append(s);
System.out.println(s1.toString());
}else{
s3.append(s);
System.out.println(s3.toString());
}
}else{
if(s.matches(ss2)){
if(s1==null){
System.out.println("err!");
}else{
if(s3==null){
s2.append(s);
System.out.println(s2.toString().charAt(0));
}else{
System.out.println("err!");
}
}
}else{
System.out.println("err!");
}
}
}
} 找不到错处,是思路有问题,还是程序?或者都是?那该怎么做?请大家多多指教!
* 事件处理方法(每次点击一个按钮,触发一个事件,就进入一次这个方法)
*/
public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
}
我的思路:其中设了几个属性:StringBuilder s1 = null;//放加号前面的值
StringBuilder s2 = null;//放加号
StringBuilder s3 = null;//放加好后面的值 //判断是不是=
//是:
//判断s1,s2,s3是否有一个为空
//是:输出错误
//不是:求和运算
//不是:
//判断s是不是数字
//1)是数字
//1 判断s2是否为空
//是:追加到s1
//不是:追加到s3
//2)不是数字
//判断是否是符号
//是:判断s1 是否为空
//是:输出有错!
//不是:判断s3是否是空
//是:追加到s2
//不是:输出有错!!
//不是:错误提示!
我自己编的:public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
String ss1 = "^[0-9]+$";
String ss2 = "^[+-*/]{1}$";
if(s.matches("^[=]{1}$")){
if(s1==null||s2==null||s3==null){
System.out.println("err!");
}else{
System.out.println(Integer.parseInt(s1.toString())+
s2.charAt(0)+
Integer.parseInt(s3.toString()));
}
}else{
if(s.matches(ss1)){
if(s2==null){
s1.append(s);
System.out.println(s1.toString());
}else{
s3.append(s);
System.out.println(s3.toString());
}
}else{
if(s.matches(ss2)){
if(s1==null){
System.out.println("err!");
}else{
if(s3==null){
s2.append(s);
System.out.println(s2.toString().charAt(0));
}else{
System.out.println("err!");
}
}
}else{
System.out.println("err!");
}
}
}
} 找不到错处,是思路有问题,还是程序?或者都是?那该怎么做?请大家多多指教!
解决方案 »
- lucene3.6.1 + IKAnalyzer 创建索引库性能问题!
- mysql 连接超时问题autoReconnect=true 没有使用hibernate求解决。。
- 求一个SPRING管理事务问题,急!
- 外包一个页面 顺便推荐这个网络收藏夹--偶得
- report分页时,打印预览时为什么第二页的内容会在第一页显示?
- tomcat下lib和classes有什么区别
- Jbuilder中如何增加一些class,如何导入呢?
- Socket开发Server端接收到客户端的 中文数据(字符串) 为乱码问题?
- 更新数据时,如何使datetime不会自动更新
- how to retrive a memo data from access database using java?
- sql server jsp
- jdbc连接池问题
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import javax.swing.JButton;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class Computer implements ActionListener { private JTextField jtf = new JTextField("", 20);
public Computer() { init();
} /**
* 初始化JFrame的方法
*/
private void init() {
JFrame jf = new JFrame("计算器");
JPanel jp = new JPanel(); //计算器的按钮面板
//给jf设置布局管理器,并设置它的布局
jf.setLayout(new BorderLayout());
jtf.setEditable(false); //设置文本框的内容部可以写入。
jf.add(jtf, BorderLayout.NORTH);
jf.add(jp, BorderLayout.CENTER);
//调用初始化按钮的方法。
initJPanel(jp);
//设置jf的显示位置
jf.setLocation(500, 300);
//设置jf的大小,pack()让其自己调整,可以调节。
jf.pack();
jf.setResizable(false); //使其的大小不可调整。
//设置jf的可见性,一定要放到setSize()的后面
jf.setVisible(true);
//设置窗体的关闭方式
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /**
* 初始化JPanel的方法,完成按钮的创建。
*/
public void initJPanel(JPanel jp) {
//给jp设置布置管理器(网格布局管理器)
jp.setLayout(new GridLayout(5, 4, 2, 2));
//按钮的名字
String[] names = { "Back", "CE", "C", "+", "7", "8", "9", "-", "4",
"5", "6", "*", "1", "2", "3", "/", "0", "+/-", ".", "=" };
JButton[] jbs = new JButton[names.length];
for (int i = 0; i < names.length; i++) {
jbs[i] = new JButton(names[i]);
//给按钮添加事件
jbs[i].addActionListener(this);
//把按钮添加到jp上
jp.add(jbs[i]);
} } /**
* 事件处理方法(每次点击一个按钮,触发一个事件,就进入一次这个方法)
*/
public void actionPerformed(ActionEvent ae){
String s=ae.getActionCommand();
}
public static void main(String[] args) { new Computer();
} }
比如去CSDN下载频道搜索下 好多呢 而且还有注释