58,454
社区成员
发帖
与我相关
我的任务
分享
@SuppressWarnings("serial")
public class MyFrame extends JFrame implements ActionListener {
String s[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "%", "=" };
JPanel contenPanel, jp1;
JButton bt[] = new JButton[s.length];
JTextField jtf;
char before = '0';
int number = 0;
boolean operate = false, equal = false;
public MyFrame() {
// TODO Auto-generated constructor stub
setSize(300, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("取余计算器");
setResizable(false);
setLocationRelativeTo(null);
JPanel contentPanel = (JPanel) getContentPane();
jtf = new JTextField("0");
jtf.setEditable(false);
GridLayout layout = new GridLayout(3, 0, 5, 5);
jp1 = new JPanel();
jp1.setLayout(layout);
for (int i = 0; i < s.length; i++) {
bt[i] = new JButton(s[i]);
jp1.add(bt[i]);
bt[i].addActionListener(this);
}
contentPanel.add(jp1);
contentPanel.add(jtf, BorderLayout.NORTH);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String str = jtf.getText();
String btn = ((JButton) arg0.getSource()).getText();
while(before=='=') {
if(!btn.equals("=")&&!btn.equals("%")) {
jtf.setText("" + btn);
}else {
jtf.setText("0");
}
before='0';
}
if (!str.equals("0")) {
if(before=='%'&& btn.equals("=")){
compute('=');
}else if( before=='0' && btn.equals("%")){
compute('%');
}else if(!btn.equals("=")&&!btn.equals("%")) {
jtf.setText(str + btn);
}
}else if(!btn.equals("=")&&!btn.equals("%")) {
jtf.setText("" + btn);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();
}
public void compute(char how) {
int currentNumber = Integer.valueOf(jtf.getText());
if (how == '%') {
number = currentNumber;
jtf.setText("0");
before = '%';
} else {
number = number % currentNumber;
jtf.setText(String.valueOf(number));
before = '=';
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String str = jtf.getText();
JButton btn = (JButton) arg0.getSource();
if (btn.getText().equals("=")) {
compute('=');
equal = true;
} else if (btn.getText().equals("%")) {
compute('%');
jtf.setText("0");
equal = false;
} else if (str.equals("0")) {
jtf.setText("" + btn.getText());
} else if (operate) {
jtf.setText("" + btn.getText());
operate = false;
} else {
jtf.setText(str + btn.getText());
}
}