
结果展示:
//定义的按钮类
import javax.swing.*;
import java.awt.*;
public class MyJbutton extends JButton {
public MyJbutton(String name){
super(name);
setBorderPainted(true);
setEnabled(true);
setFont(new java.awt.Font("华文行楷", 1, 15));
setBackground(Color.white);
}
}
//定义的界面类
import javax.swing.*;
public class Myjframe extends JFrame {
public Myjframe(int x,int y,int w,int h){
super();
setBounds(x,y,w,h);
}
}
//主程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test {
public static void main(String[] args) {
new MyInterface();
}
}
class MyInterface {
MyJbutton button17 = new MyJbutton("0");
MyJbutton button18 = new MyJbutton("1");
MyJbutton button19 = new MyJbutton("2");
MyJbutton button20 = new MyJbutton("3");
MyJbutton button21 = new MyJbutton("4");
MyJbutton button22 = new MyJbutton("5");
MyJbutton button23 = new MyJbutton("6");
MyJbutton button24 = new MyJbutton("7");
MyJbutton button25 = new MyJbutton("8");
MyJbutton button26 = new MyJbutton("9");
JTextField jtext = new JTextField(40);
public MyInterface() {
Myjframe jf = new Myjframe(400, 400, 600, 400);
jf.setTitle("计算器");
jf.setLayout(new BorderLayout());
//文本框
jtext.setHorizontalAlignment(JTextField.RIGHT);
JPanel jpanel0 = new JPanel(new BorderLayout());
JPanel jPanelinput = new JPanel();
jPanelinput.add(jtext);
jpanel0.add(jPanelinput, BorderLayout.NORTH);
jf.add(jpanel0, BorderLayout.CENTER);
//标签
JMenuBar bar = new JMenuBar();
jf.setJMenuBar(bar);
JMenu help = new JMenu("帮助");
bar.add(help);
JMenuItem about1=new JMenuItem("关于");
help.add(about1);
about1.addActionListener(new Myabout());
jf.add(bar,BorderLayout.NORTH);
//选择区
JPanel jpanel2 = new JPanel(new BorderLayout());
jpanel0.add(jpanel2, BorderLayout.CENTER);
//进制选择
JPanel jPanelselect = new JPanel(new GridLayout(1, 2));
jpanel2.add(jPanelselect, BorderLayout.NORTH);
JRadioButton radioButton1 = new JRadioButton("十进制",true);
JRadioButton radioButton2 = new JRadioButton("八进制");
JRadioButton radioButton3 = new JRadioButton("二进制");
radioButton1.setActionCommand("十");
radioButton2.setActionCommand("八");
radioButton3.setActionCommand("二");
button17.addActionListener(new MyListener(this));
button18.addActionListener(new MyListener(this));
button19.addActionListener(new MyListener(this));
button20.addActionListener(new MyListener(this));
button21.addActionListener(new MyListener(this));
button22.addActionListener(new MyListener(this));
button23.addActionListener(new MyListener(this));
button24.addActionListener(new MyListener(this));
button25.addActionListener(new MyListener(this));
button26.addActionListener(new MyListener(this));
radioButton1.addActionListener(new MyListener(this));
radioButton2.addActionListener(new MyListener(this));
radioButton3.addActionListener(new MyListener(this));
ButtonGroup group = new ButtonGroup();
group.add(radioButton1);
group.add(radioButton2);
group.add(radioButton3);
JPanel jPanelsystem1 = new JPanel();
jPanelsystem1.add(radioButton1);
jPanelsystem1.add(radioButton2);
jPanelsystem1.add(radioButton3);
jPanelselect.add(jPanelsystem1);
// Inv和 Hyp的选则
JCheckBox jCheckBox1 = new JCheckBox("Inv");
JCheckBox jCheckBox2 = new JCheckBox("Hyp");
JPanel jPanelsystem2 = new JPanel();
jPanelsystem2.add(jCheckBox1);
jPanelsystem2.add(jCheckBox2);
jPanelselect.add(jPanelsystem2);
JPanel jpanel3 = new JPanel(new GridLayout(1, 2, 20, 0));
jpanel2.add(jpanel3, BorderLayout.CENTER);
//功能选择
JPanel jPanel4 = new JPanel(new GridLayout(4, 4, 3, 4));
jpanel3.add(jPanel4);
MyJbutton button1=new MyJbutton("Sin");
MyJbutton button2=new MyJbutton("And");
MyJbutton button3=new MyJbutton("(");
MyJbutton button4=new MyJbutton(")");
MyJbutton button5=new MyJbutton("Cos");
MyJbutton button6=new MyJbutton("Or");
MyJbutton button7=new MyJbutton("Exp");
MyJbutton button8=new MyJbutton("Ln");
MyJbutton button9=new MyJbutton("tan");
MyJbutton button10=new MyJbutton("Xor");
MyJbutton button11=new MyJbutton("x^y");
MyJbutton button12=new MyJbutton("log");
MyJbutton button13=new MyJbutton("e");
MyJbutton button14=new MyJbutton("Not");
MyJbutton button15=new MyJbutton("x^3");
MyJbutton button16=new MyJbutton("n!");
jPanel4.add(button1);
jPanel4.add(button2);
jPanel4.add(button3);
jPanel4.add(button4);
jPanel4.add(button5);
jPanel4.add(button6);
jPanel4.add(button7);
jPanel4.add(button8);
jPanel4.add(button9);
jPanel4.add(button10);
jPanel4.add(button11);
jPanel4.add(button12);
jPanel4.add(button13);
jPanel4.add(button14);
jPanel4.add(button15);
jPanel4.add(button16);
//数字选择
JPanel jPanel5 = new JPanel(new GridLayout(4, 4, 3, 4));
jpanel3.add(jPanel5);
MyJbutton button27 = new MyJbutton("+");
MyJbutton button28 = new MyJbutton("-");
MyJbutton button29 = new MyJbutton("*");
MyJbutton button30 = new MyJbutton("/");
MyJbutton button31 = new MyJbutton("C");
MyJbutton button32 = new MyJbutton("=");
jPanel5.add(button17);
jPanel5.add(button18);
jPanel5.add(button19);
jPanel5.add(button20);
jPanel5.add(button21);
jPanel5.add(button22);
jPanel5.add(button23);
jPanel5.add(button24);
jPanel5.add(button25);
jPanel5.add(button26);
jPanel5.add(button27);
jPanel5.add(button28);
jPanel5.add(button29);
jPanel5.add(button30);
jPanel5.add(button31);
jPanel5.add(button32);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
class MyListener implements ActionListener {
MyInterface myInterface=null;
public MyListener(MyInterface myInterface){
this.myInterface=myInterface;
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("二")) {
myInterface.button17.setEnabled(true);
myInterface.button18.setEnabled(true);
myInterface.button19.setEnabled(false);
myInterface.button20.setEnabled(false);
myInterface.button21.setEnabled(false);
myInterface.button22.setEnabled(false);
myInterface.button23.setEnabled(false);
myInterface.button24.setEnabled(false);
myInterface.button25.setEnabled(false);
myInterface.button26.setEnabled(false);
}else if(e.getActionCommand().equals("八")){
myInterface.button17.setEnabled(true);
myInterface.button18.setEnabled(true);
myInterface.button19.setEnabled(true);
myInterface.button20.setEnabled(true);
myInterface.button21.setEnabled(true);
myInterface.button22.setEnabled(true);
myInterface.button23.setEnabled(true);
myInterface.button24.setEnabled(true);
myInterface.button25.setEnabled(false);
myInterface.button26.setEnabled(false);
} else if (e.getActionCommand().equals("十")) {
myInterface.button17.setEnabled(true);
myInterface.button18.setEnabled(true);
myInterface.button19.setEnabled(true);
myInterface.button20.setEnabled(true);
myInterface.button21.setEnabled(true);
myInterface.button22.setEnabled(true);
myInterface.button23.setEnabled(true);
myInterface.button24.setEnabled(true);
myInterface.button25.setEnabled(true);
myInterface.button26.setEnabled(true);
} else if (e.getActionCommand().equals("0")) {
myInterface.jtext.setText("0");
} else if (e.getActionCommand().equals("1")) {
myInterface.jtext.setText("1");
} else if (e.getActionCommand().equals("2")) {
myInterface.jtext.setText("2");
} else if (e.getActionCommand().equals("3")) {
myInterface.jtext.setText("3");
} else if (e.getActionCommand().equals("4")) {
myInterface.jtext.setText("4");
} else if (e.getActionCommand().equals("5")) {
myInterface.jtext.setText("5");
} else if (e.getActionCommand().equals("6")) {
myInterface.jtext.setText("6");
}else if(e.getActionCommand().equals("7")){
myInterface.jtext.setText("7");
} else if (e.getActionCommand().equals("8")) {
myInterface.jtext.setText("8");
} else if (e.getActionCommand().equals("9")) {
myInterface.jtext.setText("9");
}
}
}
class Myabout implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
new MyDialog();
}
}
class MyDialog extends JDialog{
public MyDialog(){
Container container = getContentPane();
JPanel jPanel=new JPanel(new GridLayout(3,1));
JLabel name=new JLabel("作者:name");
JLabel son=new JLabel("学号:123456");
JLabel clas=new JLabel("班级:计算机");
jPanel.add(name);
jPanel.add(son);
jPanel.add(clas);
container.add(jPanel);
setTitle("关于");
setBounds(450,450,300,200);
setVisible(true);
}
}