界面:
下附源码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Text1 extends JFrame {
double houtai = 0;
String ysf = "+";
Font f = new Font("楷体", Font.PLAIN, 15);
Font f2 = new Font("楷体", Font.BOLD, 18);
public Text1() {
this.setTitle("计算器");
this.setSize(230, 390);
this.setLocation(300, 120);
// ----------------------------------------------
JPanel jp1 = new JPanel(); // 中间容器 panel
JPanel jp2 = new JPanel(); // 中间容器 panel
JTextField jtf = new JTextField(); // 文本框
jtf.setEditable(false); // 设置不可编辑
this.setJMenuBar(setcaidan(this));
// --------------------------------------------------
this.setLayout(null); // 不使用管理器
this.add(jtf);
jtf.setBounds(5, 5, 202, 60); // 文本框位置 高 40 宽 205
jtf.setFont(f2);
this.add(jp1);
jp1.setBounds(5, 65, 205, 260); // 容器位置
jp1.setLayout(null);
jp1.add(jp2);
jp2.setBounds(0, 55, 150, 150); // jp2 3*3 位置
jp2.setLayout(new GridLayout(3, 3, 3, 3));
// --------------------------------------------------
int kuan = 48;
int gao = 48;
JButton jb[] = new JButton[17];
for (int i = 6; i < 9; i++) {
jb[i] = new JButton(i + 1 + "");
jb[i].setFont(f);
jp2.add(jb[i]);
}
for (int i = 3; i < 6; i++) {
jb[i] = new JButton(i + 1 + "");
jb[i].setFont(f);
jp2.add(jb[i]);
}
for (int i = 0; i < 3; i++) {
jb[i] = new JButton(i + 1 + "");
jb[i].setFont(f);
jp2.add(jb[i]);
}
jb[9] = new JButton("/");
jp1.add(jb[9]);
jb[9].setBounds(0, 5, kuan, gao);
jb[10] = new JButton("*");
jp1.add(jb[10]);
jb[10].setBounds(51, 5, kuan, gao);
jb[11] = new JButton("-");
jp1.add(jb[11]);
jb[11].setBounds(102, 5, kuan, gao);
jb[12] = new JButton("C");
jp1.add(jb[12]);
jb[12].setBounds(153, 5, kuan, gao);
jb[13] = new JButton("+");
jp1.add(jb[13]);
jb[13].setBounds(153, 55, kuan, gao * 2 + 3);
jb[13].setFont(f2);
jb[14] = new JButton("=");
jp1.add(jb[14]);
jb[14].setBounds(153, 157, kuan, gao * 2 + 3);
jb[14].setFont(f2);
jb[15] = new JButton(".");
jp1.add(jb[15]);
jb[15].setBounds(102, 208, kuan, gao);
jb[16] = new JButton("0");
jp1.add(jb[16]);
jb[16].setBounds(0, 208, kuan * 2 + 3, gao);
jb[16].setFont(f2);
for (int i = 0; i < 17; i++) {
jb[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JButton jj = (JButton) arg0.getSource();
String s = jj.getText();
try {
jtf.setText(jtf.getText() + Integer.parseInt(s));
} catch (Exception e) {
if (jtf.getText().toString().equals("")){ // 判断输入 // 输入了数据
if(s=="C")
jtf.setText("");
}
else{
switch (s) {
case "C":
houtai = 0;
ysf = "+";
jtf.setText("");
break;
case "=":
try{
double jg = ys(houtai, Double.parseDouble(jtf.getText()), ysf);
if ((jg % 1.0) == 0)
jtf.setText((int) jg + "");
else
jtf.setText(jg + "");}
catch(Exception e1){
System.out.println("计算格式错误,或不支持此计算!");
}
break;
case ".":
jtf.setText(jtf.getText() + s);
break;
default:
ysf = s;
houtai = Double.parseDouble(jtf.getText());
jtf.setText("");
break;
}
}
}
}
});
}
this.setVisible(true);
}
public double ys(double i1, double i2, String ysf) {
double sum = 0;
switch (ysf) {
case "+":
sum = i1 + i2;
break;
case "-":
sum = i1 - i2;
break;
case "*":
sum = i1 * i2;
break;
case "/":
sum = i1 / i2;
break;
}
return sum;
}
public JMenuBar setcaidan(JFrame jf) {
JMenuBar menu = new JMenuBar(); // 菜单栏
menu.setFont(f); // 菜单栏设置字体
JMenu jm1 = new JMenu(" 开始 "); // 菜单
JMenu jm2 = new JMenu(" 关于 ");
menu.add(jm1);
menu.add(jm2);
// ----------------------------
JMenuItem mt1 = new JMenuItem("说明");
JMenuItem mt2 = new JMenuItem("退出");
jm1.add(mt1);
jm1.addSeparator();
jm1.add(mt2);
mt1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JDialog jd1 = new JDialog(jf, "说明");
jd1.setLayout(new BorderLayout());
JTextArea ja = new JTextArea("本计算机只支持四则运算!");
ja.setEditable(false);
jd1.add(ja);
jd1.setSize(200, 200);
jd1.setLocation(jf.getX(), jf.getY());
jd1.setVisible(true);
}
});
mt2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
// 菜单 关于
// ----------------------------------------------------
JMenuItem mt3 = new JMenuItem("关于软件");
JMenuItem mt4 = new JMenuItem("关于作者");
jm2.add(mt3);
jm2.addSeparator();
jm2.add(mt4);
mt3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog jd2 = new JDialog(jf, "关于软件");
jd2.setLayout(new BorderLayout()); // 设置边界布局管理器
JTextArea ja2 = new JTextArea("由于本人的技术,时间,精力有限;\n计算器目前还不支持一些高级运算;\n请期待2.0版本的上线!");
ja2.setEditable(false);
jd2.add(ja2);
jd2.setSize(220, 200);
jd2.setLocation(jf.getX(), jf.getY());
jd2.setVisible(true);
}
});
mt4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog jd2 = new JDialog(jf, "关于作者");
jd2.setLayout(new BorderLayout()); // 设置边界布局管理器
JTextArea ja2 = new JTextArea(" QQ: xxxx--xxxx--xxxx--xxx\n @蜻蜓");
ja2.setEditable(false);
jd2.add(ja2);
jd2.setSize(220, 200);
jd2.setLocation(jf.getX(), jf.getY());
jd2.setVisible(true);
}
});
return menu;
}
public static void main(String[] args) {
new Text1();
}
}
学习java的第一个完整程序,欢迎指点!