58,454
社区成员
发帖
与我相关
我的任务
分享
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class TestFrame3 extends JFrame{
private static final String [] b_text = {"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","C"};
private JTextField jf = new JTextField(16);
public TestFrame3() {
add(jf);
for (int i = 0;i< b_text.length; i++) {
JButton j1= new JButton(b_text[i]);
j1.addActionListener(new BeginLisener4());
add(j1);
}
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200, 200);
setVisible(true);
}
private class BeginLisener4 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JButton b1 = (JButton) e.getSource();
if(b1.getText().equals("=")){
String sv = jf.getText();
if(sv.indexOf("+")!= -1){
jf.setText(getResult(sv,"\\+")+"");
}else if(sv.indexOf("-")!= -1){
jf.setText(getResult(sv,"\\-")+"");
}else if(sv.indexOf("*")!= -1){
jf.setText(getResult(sv,"\\*")+"");
}else if(sv.indexOf("/")!= -1){
jf.setText(getResult(sv,"\\/")+"");
}
return;
}
if(b1.getText().equals("C")){
jf.setText("");
return;
}
String v1 = jf.getText()+b1.getText();
jf.setText(v1);
}
private int getResult(String sv,String split){
String [] sArry = sv.split(split);
int t1 = Integer.parseInt(sArry[0]);
int t2 = Integer.parseInt(sArry[1]);
switch(split){
case "\\+":
return t1+t2;
case "\\-":
return t1-t2;
case "\\*":
return t1*t2;
case "\\/":
return t1/t2;
}
return -1;
}
}
public static void main(String[] args) {
new TestFrame3();
}
}
public class Test {
public static void main(String[] args) {
new TestFrame3();
}
}
之前写过的一个简单计算机,你看着完善自己的功能。都差不多。