package a1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyWindow extends JFrame implements ActionListener
{
String s="",s1;
double x,y;//x和y都是运算数
Container contentPane;
JMenuBar menubar;
JMenu menu1,menu2;
JMenuItem item1,item2,item3;
JPanel pane;
Box Hede1,Hede2,Hede3,Hede4,Vede,bosde;
Button but1,but2,but3,but4,but5,but6;
JTextField num1,num2,rus;
Container con;
MyWindow(String s)
{
super(s);
setSize(320,300);
setLocation(120,120);
setVisible(true);
menubar=new JMenuBar();
menu1=new JMenu("工具箱");
menu2=new JMenu("版本说明");
item1=new JMenuItem("计算器");
item2=new JMenuItem("日历");
item3=new JMenuItem("记事本");
pane= new JPanel();
item1.addActionListener(this);
item1.setAccelerator(KeyStroke.getKeyStroke('C'));
item2.setAccelerator(KeyStroke.getKeyStroke('R'));
item3.setAccelerator(KeyStroke.getKeyStroke('N'));
menu1.add(item1);
menu1.addSeparator();
menu1.add(item2);
menu1.addSeparator();
menu1.add(item3);
menubar.add(menu1);
menubar.add(menu2);
setJMenuBar(menubar);
//设置BoxLayout布局
Hede1=Box.createHorizontalBox();
Vede=Box.createVerticalBox();
Vede.add(new JLabel("请输入要计算的数字"));
Vede.add(Box.createVerticalStrut(10));
num1=new JTextField();
Hede1.add(new JLabel("num1"));
Hede1.add(num1);
num2=new JTextField();
Hede1.add(new JLabel("num2"));
Hede1.add(num2);
Vede.add(Hede1);
Vede.add(Box.createVerticalStrut(10));
Hede2=Box.createHorizontalBox();
but1=new Button("+");
but2=new Button("-");
but3=new Button("*");
but4=new Button("%");
Hede2.add(but1);
Hede2.add(but2);
Hede2.add(but3);
Hede2.add(but4);
Vede.add(Hede2);
Vede.add(Box.createVerticalStrut(10));
Hede3=Box.createHorizontalBox();
Hede3.add(new JLabel("结果"));
rus=new JTextField();
Hede3.add(rus);
Vede.add(Hede3);
Vede.add(Box.createVerticalStrut(10));
Hede4=Box.createHorizontalBox();
but5=new Button("重置");
but6=new Button("关闭");
Hede4.add(but5);
Hede4.add(but6);
Vede.add(Hede4);
but1.addActionListener(this);
but2.addActionListener(this);
but3.addActionListener(this);
but4.addActionListener(this);
but5.addActionListener(this);
but6.addActionListener(this);
//把计算器中的组件加到面板容器pane
pane.add(Vede);
//获取内容面板
contentPane = getContentPane();
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==item1)
{
//添加面板容器到窗体的内容面板
contentPane.add(pane);
validate();
contentPane.repaint();//界面刷新
}
else if(e.getSource()==but6)
{
//从内容面板移除面板容器
contentPane.remove(pane);
validate();
contentPane.repaint();//界面刷新
}
try {
if(e.getSource()==but1)
{
x=Double.parseDouble(num1.getText().trim());
y=Double.parseDouble(num2.getText().trim());
rus.setText(""+(x+y));
}
else if(e.getSource()==but2)
{
x=Double.parseDouble(num1.getText().trim());
y=Double.parseDouble(num2.getText().trim());
rus.setText(""+(x-y));
}
else if(e.getSource()==but3)
{
x=Double.parseDouble(num1.getText().trim());
y=Double.parseDouble(num2.getText().trim());
rus.setText(""+(x*y));
}
else if(e.getSource()==but4)
{
x=Double.parseDouble(num1.getText().trim());
y=Double.parseDouble(num2.getText().trim());
rus.setText(""+(x/y));
if(y==0)
{
rus.setText("除数不能为零");
}
}
else if (e.getSource()==but5)
{
num1.setText("");
num2.setText("");
rus.setText("0");
}
}
catch(NumberFormatException e1)
{
rus.setText("数字格式异常");
}
catch(StringIndexOutOfBoundsException e1)
{
rus.setText("字符串索引越界");
}
}
}
public class testZ
{
public static void main(String args[])
{
new MyWindow("我的工具箱");
}
}