java gui 设计计算器_JavaGUI设计——计算器

这篇博客介绍了如何利用Java的Swing库设计一个简单的计算器。实现了加、减、乘、除、百分比、平方根、1/x等基本功能,并包含了复制、粘贴以及帮助菜单。界面友好,操作便捷。

41528d3028836879cd698677c3999917.gifJavaGUI设计——计算器

Java GUI设计 运用Java Swing技术实现一个简单的“计算器”,界面如下: 以上测试6/3=2.0 主要实现代码如下: package domain; import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class calculator extends JFrame implements ActionListener { JFrame frame; private JButton jia = new JButton(“+“); private JButton jian = new JButton(“-“); private JButton cheng = new JButton(“*“); private JButton chu = new JButton(“/“); private JButton qiuyi = new JButton(“%“); private JButton deng = new JButton(“=“); private JButton fu = new JButton(“+/-“); private JButton dian = new JButton(“.“); private JButton kai = new JButton(“sqrt“); private JButton diao = new JButton(“1/x“); private TextField k1 = new TextField(); private objConversion convert = new objConversion(); JMenuItem copy, paste, help, about; JButton backspace, ce, c, num0, num1, num2, num3, num4, num5, num6, num7, num8, num9; Container cp; JTextField text; String copycontent = ““; boolean clickable = true, clear = true; int all = 0; double qian; String fuhao; int first = 1; public calculator() { setTitle(“计算器“); setSize(400, 300); setLocation(250, 200); text = new JTextField(25); text.setText(“0.“); text.setHorizontalAlignment(JTextField.RIGHT);// 从右到左 JPanel cp1 = new JPanel(); JPanel cp2 = new JPanel(); JPanel cp3 = new JPanel(); cp = getContentPane(); cp.add(cp1, “North“); cp.add(cp2, “Center“); cp.add(cp3, “South“); cp1.setLayout(new GridLayout(1, 6)); cp2.setLayout(new GridLayout(1, 3)); cp3.setLayout(new GridLayout(6, 6)); ButtonGroup btg = new ButtonGroup(); JTextField t3 = new JTextField(25); cp1.add(text); text.setEditable(false); text.setBackground(new Color(255, 255, 255)); backspace = new JButton(“Backspace“); backspace.setForeground(new Color(255, 0, 0)); backspace.addActionListener(this); ce = new JButton(“CE“); ce.setForeground(new Color(255, 0, 0)); ce.addActionListener(this); c = new JButton(“C“); c.setForeground(new Color(255, 0, 0)); c.addActionListener(this); k1.setVisible(false); cp2.add(k1); cp2.add(backspace); cp2.add(ce); cp2.add(c); num0 = new JButton(“0“); num1 = new JButton(“1“); num2 = new JButton(“2“); num3 = new JButton(“3“); num4 = new JButton(“4“); num5 = new JButton(“5“); num6 = new JButton(“6“); num7 = new JButton(“7“); num8 = new JButton(“8“); num9 = new JButton(“9“); cp3.add(num7); num7.addActionListener(this); cp3.add(num8); num8.addActionListener(this); cp3.add(num9); num9.addActionListener(this); cp3.add(num6); num6.addActionListener(this); cp3.add(num5); num5.addActionListener(this); cp3.add(num4); num4.addActionListener(this); cp3.add(num3); num3.addActionListener(this); cp3.add(num2); num2.addActionListener(this); cp3.add(num1); num1.addActionListener(this); diao.addActionListener(this); cp3.add(num0); num0.addActionListener(this); cp3.add(chu); chu.setForeground(new Color(255, 0, 0)); chu.addActionListener(this); cp3.add(kai); kai.addActionListener(this); cp3.add(cheng); cheng.setForeground(new Color(255, 0, 0)); cheng.addActionListener(this); cp3.add(qiuyi); qiuyi.addActionListener(this); cp3.add(jian); jian.setForeground(new Color(255, 0, 0)); jian.addActionListener(this); cp3.add(diao); cp3.add(fu); fu.addActionListener(this); cp3.add(dian); dian.addActionListener(this); cp3.add(jia); jia.setForeground(new Color(255, 0, 0)); jia.addActionListener(this); cp3.add(deng); deng.setForeground(new Color(255, 0, 0)); deng.addActionListener(this); JMenuBar mainMenu = new JMenuBar(); setJMenuBar(mainMenu); JMenu editMenu = new JMenu(“编辑“); JMenu helpMenu = new JMenu(“帮助“); mainMenu.add(editMenu); mainMenu.add(helpMenu); copy = new JMenuItem(“ 复制“); paste = new JMenuItem(“ 粘贴“); KeyStroke copyks = KeyStroke.getKeyStroke(KeyEvent.VK_C, Event.CTRL_MASK); copy.setAccelerator(copyks);// 设置退出菜单选项加上快捷键 KeyStroke pasteks = KeyStroke.getKeyStroke(KeyEvent.VK_V, Event.CTRL_MASK); paste.setAccelerator(pasteks);// 设置退出菜单选项加上快捷键 editMenu.add(copy); editMenu.add(paste); copy.addActionListener(this); paste.addActionListener(this); help = new JMenuItem(“ 帮助主题“); about = new JMenuItem(“ 关于计算器“); helpMenu.add(help); helpMenu.add(about); help.addActionListener(this); about.addActionListener(this); addWindowListener(new WindowDestroyer());// 结束窗口 } public void actionPered(ActionEvent e) {// 响应动作代码 if (first == 1) text.setText(““); first = 0;// 第一次把文本框0.清空 Object temp = e.getSource(); if (temp == copy) { copycontent = text.getText(); } if (temp == paste) { text.setText(text.getText() + copycontent); } if (temp == help) { // 打开系统帮助文件 要查资料 try { String filePath = “C:/WINDOWS/Help/calc.chm“; Runtime.getRuntime().c(“. /c “ + filePath); } catch (Exception eeee) { System.out.println(“打开系统的计算器出错“); } } if (temp == about) { JOptionPane.showMessageDialog(frame, “ Java计算器\n \n07计算机3班 20072481 刘学龙“, “关于计算器“, JOptionPane.INATION_MESSAGE); } try { String dec = text.getText(); num2.setEnabled(true); num3.setEnabled(true); num4.setEnabled(true); num5.setEnabled(true); num6.setEnabled(true); num7.setEnabled(true); num8.setEnabled(true); num9.setEnabled(true); } catch (Exception ee) { System.out.println(“转换出错,可能你没有输入任何字符“); text.setText(“转换出错“); clear = false; } if (temp == backspace) {// 退格 String s = text.getText(); text.setText(““); for (int i = 0; i 0; i--) { answer += strNum.charAt(i - 1); } return answer; } } public static void main(String arg[])// 产生窗口 { calculator win = new calculator(); win.setVisible(true); } }

对于Java GUI编程实现计算器,你可以使用Swing和AWT这两种Java GUI工具包之一。 以下是一个简单的Java GUI计算器的实现示例: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private JButton[] numberButtons; private JButton[] operatorButtons; private JButton clearButton, equalsButton, decimalButton; private JTextField textField; private double num1 = 0, num2 = 0, result = 0; private char operator; public Calculator() { setTitle("Calculator"); // Create the number buttons numberButtons = new JButton[10]; for (int i = 0; i < 10; i++) { numberButtons[i] = new JButton(String.valueOf(i)); } // Create the operator buttons operatorButtons = new JButton[4]; operatorButtons[0] = new JButton("+"); operatorButtons[1] = new JButton("-"); operatorButtons[2] = new JButton("*"); operatorButtons[3] = new JButton("/"); // Create the clear, equals, and decimal buttons clearButton = new JButton("C"); equalsButton = new JButton("="); decimalButton = new JButton("."); // Create the text field textField = new JTextField(10); textField.setEditable(false); // Set the layout manager and add the components setLayout(new GridBagLayout()); GridBagConstraints gc = new GridBagConstraints(); gc.gridx = 0; gc.gridy = 0; gc.gridwidth = 4; add(textField, gc); gc.gridwidth = 1; gc.gridy = 1; for (int i = 0; i < 10; i++) { gc.gridx = i % 3; gc.gridy = i / 3 + 2; add(numberButtons[i], gc); numberButtons[i].addActionListener(this); } gc.gridx = 0; gc.gridy = 5; add(operatorButtons[0], gc); operatorButtons[0].addActionListener(this); gc.gridx = 1; add(operatorButtons[1], gc); operatorButtons[1].addActionListener(this); gc.gridx = 2; add(operatorButtons[2], gc); operatorButtons[2].addActionListener(this); gc.gridx = 3; add(operatorButtons[3], gc); operatorButtons[3].addActionListener(this); gc.gridx = 0; gc.gridy = 6; add(clearButton, gc); clearButton.addActionListener(this); gc.gridx = 1; add(equalsButton, gc); equalsButton.addActionListener(this); gc.gridx = 2; add(decimalButton, gc); decimalButton.addActionListener(this); setSize(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent e) { for (int i = 0; i < 10; i++) { if (e.getSource() == numberButtons[i]) { textField.setText(textField.getText() + i); } } if (e.getSource() == decimalButton) { textField.setText(textField.getText() + "."); } if (e.getSource() == clearButton) { textField.setText(""); num1 = 0; num2 = 0; result = 0; operator = ' '; } if (e.getSource() == operatorButtons[0]) { num1 = Double.parseDouble(textField.getText()); operator = '+'; textField.setText(""); } if (e.getSource() == operatorButtons[1]) { num1 = Double.parseDouble(textField.getText()); operator = '-'; textField.setText(""); } if (e.getSource() == operatorButtons[2]) { num1 = Double.parseDouble(textField.getText()); operator = '*'; textField.setText(""); } if (e.getSource() == operatorButtons[3]) { num1 = Double.parseDouble(textField.getText()); operator = '/'; textField.setText(""); } if (e.getSource() == equalsButton) { num2 = Double.parseDouble(textField.getText()); switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; } textField.setText(Double.toString(result)); } } public static void main(String[] args) { new Calculator(); } } ``` 这个示例应该可以实现一个简单的Java GUI计算器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值