Java swing实现简单计算器的开发
2016-07-14 14:33
330 查看
今天给大家介绍一下Java swing开发计算机的一个思路,比较简单,初学者可以借鉴下,大神请绕道。
代码实现如下:
![](http://img.blog.csdn.net/20160714143416598?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
更多资源请点击:网盘搜索沐伊神器 咻盘网
代码实现如下:
package calclutor; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Calculator extends JFrame { public static void main(String[] args) { // Create application frame. Calculator frame = new Calculator(); frame.setTitle("Calculator"); frame.setSize(240, 320); frame.setResizable(false); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.init(); // Show frame frame.setVisible(true); } private void init() { textField = new JTextField(); textField.setEditable(false); textField.setHorizontalAlignment (JTextField.RIGHT); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 4)); Container container = getContentPane(); container.add(textField, BorderLayout.NORTH); container.add(panel, BorderLayout.CENTER); panel.add(useButton('7')); panel.add(useButton('8')); panel.add(useButton('9')); panel.add(useButton('+')); panel.add(useButton('4')); panel.add(useButton('5')); panel.add(useButton('6')); panel.add(useButton('-')); panel.add(useButton('1')); panel.add(useButton('2')); panel.add(useButton('3')); panel.add(useButton('*')); panel.add(useButton('0')); panel.add(useButton('.')); panel.add(useButton('=')); panel.add(useButton('/')); } public JButton useButton (final char key) { JButton button = new JButton(String.valueOf(key)); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { JButton btn = (JButton) event.getSource(); char key2 = btn.getText().charAt(0); action(key2); } }); button.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent event) { char key2 = event.getKeyChar (); //if(key2 != key) // return; action(key2); } }); return button; } private void action(char key2) { if(reop) { textField.setText(""); reop = false; } switch(key2) { case '+': v1 = Double.parseDouble(textField.getText()); textField.setText(""); operator = '+'; break; case '-': v1 = Double.parseDouble(textField.getText()); textField.setText(""); operator = '-'; break; case '*': v1 = Double.parseDouble(textField.getText()); textField.setText(""); operator = '*'; break; case '/': v1 = Double.parseDouble(textField.getText()); textField.setText(""); operator = '/'; break; case '=': reop = true; v2 = Double.parseDouble(textField.getText()); switch(operator) { case '+': value = v1 + v2; break; case '-': value = v1 - v2; break; case '*': value = v1 * v2; break; case '/': value = v1 / v2; break; default: ; } textField.setText(String.valueOf(value)); break; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '0': case '.': String text = textField.getText() + key2; textField.setText(text); break; default: ; } } private JTextField textField; private double v1, v2, value; private char operator; private boolean reop = false; }运行效果如下:
更多资源请点击:网盘搜索沐伊神器 咻盘网
相关文章推荐
- springmvc支持json和jsonp类型数据
- DynamicGecco实现爬取规则的动态加载
- Java如何通过WSDL文件来调用这些web service
- struts2标签应用
- Java多线程入门
- ConcurrentHashMap
- Mybatis基础知识
- myeclipse 修改 web root folder
- Java BlockingQueue
- struts2 访问Web元素的4种方法
- State(状态)模式在web程序中的应用
- java、java -version 可以javac没有内部命令的问题
- spring框架
- Java多线程-线程的同步与锁
- MyEclipse提示An error has occurred的一个解决方法
- 使用Java调用以WSDL形式发布的web service
- 解决Spring MVC @ResponseBody返回中文字符串乱码问题
- spring框架--spring整合postgre数据源配置
- Java中PreparedStatement和Statement的用法区别
- spring开发:spring的作用域(scope="prototype";scope="singleton")