javaGUI设计简单计算器实验报告 |
您所在的位置:网站首页 › java创建一个窗口进行简单加减乘除的计算过程 › javaGUI设计简单计算器实验报告 |
1. package GUI; import java.awt.*; import javax.swing.*; public class GUI extends JFrame{ public GUI(){ JPanel inputPanel = new JPanel(); JPanel inputPanel1 = new JPanel(); JPanel inputPanel2 = new JPanel(); //创建三个面板对象分别放置三个编辑框及其标签 JTextField inputField = new JTextField(22); JTextField inputField1 = new JTextField(22); JTextField inputField2 = new JTextField(22); //创建三个长度为22的空的文本编辑框 Label label = new Label("用户名:");//创建标签对象 设置参数 inputPanel.add(label); //将标签放入面板对象中 inputPanel.add(inputField); //将空的文本编辑框放入面板对象中 Label label1 = new Label("密 码:"); inputPanel1.add(label1); inputPanel1.add(inputField1);// Label label2 = new Label("确认密码:"); inputPanel2.add(label2); inputPanel2.add(inputField2); this.add(inputPanel); this.add(inputPanel1); this.add(inputPanel2); //将三个面板放入窗体中 JPanel radiopanel = new JPanel(); Label radiolabel = new Label("性别:"); radiopanel.add(radiolabel); radiopanel.add(new JRadioButton("男")); radiopanel.add( new JRadioButton("女")); this.add(radiopanel); //创建两个单选按钮,标签为性别 JPanel checkpanel = new JPanel(); Label checklabel = new Label("爱好:"); checkpanel.add(checklabel); checkpanel.add(new JCheckBox("阅读")); checkpanel.add(new JCheckBox("上网")); checkpanel.add(new JCheckBox("游泳")); checkpanel.add(new JCheckBox("旅游")); this.add(checkpanel); //创建四个复选按钮,标签为爱好 JPanel inputPanel3 = new JPanel(); JTextArea inputField3 = new JTextArea(2,20); Label inputlabel3 = new Label("地址:"); inputPanel3.add(inputlabel3); inputPanel3.add(inputField3); this.add(inputPanel3); //创建一个具有指定行和列的空文本域 JPanel combopanel = new JPanel(); Label combolabel = new Label("学历:"); combopanel.add(combolabel); JComboBox comboBox = new JComboBox(); comboBox.addItem("请选择学历"); comboBox.addItem("小学"); comboBox.addItem("初中"); comboBox.addItem("高中"); comboBox.addItem("本科"); combopanel.add(comboBox); this.add(combopanel); //创建一个下拉列表框 JPanel panel = new JPanel(); panel.add(new JButton("确定")); panel.add(new JButton("取消")); this.add(panel); //创建两个按钮 this.setTitle("用户注册");//创建一个标题为用户注册的窗体 this.setSize(340,450);//该窗体大小 this.setLayout(new GridLayout(8,1));//该窗体中的面板的排列方式 this.setVisible(true); //显示窗体 } public static void main(String[] args){ new GUI(); } } 2. package Calculator; import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Calculator{ public static void main(String[] args){ new Interface(); } } class Interface extends JFrame { ArrayList list = new ArrayList();//用来存该运算中的数,以及运算结果,由文本编辑框得到 ArrayList lists = new ArrayList();//用来存该运算中使用了的运算符,当点击运算符按钮存起集合lists int cout = 0; //计数运算符,用来作为集合中各元素的下标 JPanel inputpanel; //GUI组件的布局包括如下三个过程:1。创建面板,确定面板中的布局管理 JTextField inputField; // 2.给面板添加标签 JButton button; // 3.为面板添加按钮,文本编辑框等组件 JButton btn1,btn2,btn3,btn4; JButton btn5,btn6,btn7,btn8; JButton btn9,btn10,btn11,btn12; JButton btn13,btn14,btn15,btn16; public Interface(){ inputpanel = new JPanel(); inputField = new JTextField(9); //文本框长度为9 button = new JButton("清零"); inputpanel.add(inputField); inputpanel.add(button); this.add(inputpanel); JPanel panel = new JPanel(new GridLayout(4,4));//设置panel面板的布局管理为GridLayout管理器,为一个4*4的网格 btn1 = new JButton("7"); btn2 = new JButton("8"); btn3 = new JButton("9"); btn4 = new JButton("+"); btn5 = new JButton("4"); btn6 = new JButton("5"); btn7 = new JButton("6"); btn8 = new JButton("-"); btn9 = new JButton("1"); btn10 = new JButton("2"); btn11 = new JButton("3"); btn12 = new JButton("×"); btn13 = new JButton("0"); btn14 = new JButton("."); btn15 = new JButton("="); btn16 = new JButton("÷"); //定义Button按钮 panel.add(btn1); panel.add(btn2); panel.add(btn3); panel.add(btn4); panel.add(btn5); panel.add(btn6); panel.add(btn7); panel.add(btn8); panel.add(btn9); panel.add(btn10); panel.add(btn11); panel.add(btn12); panel.add(btn13); panel.add(btn14); panel.add(btn15); panel.add(btn16); //将按钮添加进panel面板 btn1.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"7"); } }); btn2.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"8"); } }); btn3.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"9"); } }); btn5.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"4"); } }); btn6.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"5" ); } }); btn7.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"6"); } }); btn9.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"1"); } }); btn10.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"2"); } }); btn11.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"3"); } });
btn13.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"0"); } }); btn14.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(inputField.getText()+"."); } }); //为数字按钮和小数点按钮添加点击事件,点击之后按钮所代表数字显示在文本编辑框 btn4.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ list.add(inputField.getText()); //运算的实现,获取在文本编辑框上显示的文本,并存入集合list中 lists.add("+"); //获取运算符,存入lists中 cout++; //标记运算符的个数,也就是要进行运算的次数 inputField.setText(""); //将编辑框置为空的,方便下一个数据的额输入 } }); btn8.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ list.add(inputField.getText()); lists.add("-"); cout++; inputField.setText(""); } }); btn12.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ list.add(inputField.getText()); lists.add("×"); cout++; inputField.setText(""); } }); btn16.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ list.add(inputField.getText()); lists.add("÷"); cout++; inputField.setText(""); } }); btn15.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ list.add(inputField.getText()); //点击按钮=时,把此事编辑框显示的数据存入list inputField.setText(Operator(lists.get(cout-1)));//把运算得到的结果存入list,作为下一个运算符运算的前一个数 } }); button.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent e){ inputField.setText(""); list.clear(); //将list和lists集合保存的上一次运算的各要素清空 lists.clear(); cout = 0; //把cout的值还原 } }); this.add(panel); this.setTitle("计算器"); this.setSize(185,205); this.setLayout(new FlowLayout()); this.setVisible(true); //GUI窗体 } public String Operator(String str){ Double result = 0.0 ; Double a = Double.parseDouble(list.get(2*cout-2));//将list中记录的第一个运算符前一个数据转化为Double类型 Double b = Double.parseDouble(list.get(2*cout-1));//将list中记录的第一个运算符后一个数据转化为Double类型 switch(str){ //cout表示第几个字符 case "+" : result = a + b; break; case "-" : result = a - b; break; case "×" : result = a * b; break; case "÷" : result = a / b; break; } String res = String.valueOf(result); return res; //通过switch语句得到各种运算之后的返回值并转化为String类型 } }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |