这篇文章主要介绍“java frame实现简易计算器的方法”,在日常操作中,相信很多人在java frame实现简易计算器的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java frame实现简易计算器的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class CalcDoc { static ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript"); public static void main(String[] args) { final JFrame jf = new JFrame("计算器"); // 流动布局,居中 jf.setLayout(new FlowLayout(1, 5, 5)); jf.setSize(293, 260); // jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 不可以改变大小 jf.setResizable(false); // 创建容器,存放显示数字框和 C 按钮 JPanel panel1 = new JPanel(); // 定义按钮面板,并设置为网格布局,4行4列,组件水平、垂直间距均为3 JPanel panel2 = new JPanel(new GridLayout(4, 4, 1, 1)); // 创建文本域,放置输入数据和结果 JTextArea text = new JTextArea(1, 13); // 设置字体 text.setFont(new Font(null, Font.PLAIN, 20)); // 设置大小 text.setPreferredSize(new Dimension(190, 28)); // 不可编辑 text.setEditable(false); panel1.add(text); // 创建一个清除按钮'C' JButton btnC = new JButton("C"); btnC.setFont(new Font(null, Font.PLAIN, 20)); btnC.setPreferredSize(new Dimension(55, 28)); panel1.add(btnC); // C 键 功能 btnC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String textStr = text.getText(); if (textStr.indexOf("=") != -1) { text.setText(""); } else { textStr = textStr.substring(0, (textStr.length() - 1)); text.setText(textStr); } } }); // 按钮数组 String btn_str[] = {"1", "2", "3", "/", "4", "5", "6", "*", "7", "8", "9", "-", "0", ".", "=", "+"}; JButton btn[] = new JButton[btn_str.length]; for (int i = 0; i < btn_str.length; i++) { btn[i] = new JButton(btn_str[i]); btn[i].setFont(new Font(null, Font.PLAIN, 20)); btn[i].setPreferredSize(new Dimension(70, 42)); panel2.add(btn[i]); } // 按钮功能 for (int i = 0; i < btn_str.length; i++) { if (i != 14) { // 如果不是等于号 int j = i; btn[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 获取文本框内容 String textStr = text.getText(); // 如果有等号,清空文本框 if (textStr.indexOf("=") != -1) { text.setText(""); } // 获取按钮字符添加到文本框 String s = btn[j].getText(); text.append(s); } }); } else { // 如果点击等于号 btn[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { // 获取文本框内容 String gongshi = text.getText(); // 计算公式 String jieguo = scriptEngine.eval(gongshi).toString(); // 如果结果字符串过长,只显示等号和结果 if (jieguo.length() > 18) { jieguo = jieguo.substring(jieguo.length() - 16, jieguo.length()); text.setText("="); text.append(jieguo); } else { text.append("="); text.append(jieguo); } //如果出错 } catch (Exception t) { text.setText(""); } } }); } } { }// 皮皮狗子写的! // 把 面板容器 设置到 窗口 // panel1 设置到顶部 jf.getContentPane().add(panel1, BorderLayout.NORTH); // panel1 设置到底部 jf.getContentPane().add(panel2, BorderLayout.CENTER); // 显示窗口,前面创建的信息都在内存中,通过 jf.setVisible(true) 把内存中的窗口显示在屏幕上。 jf.setVisible(true); } }
到此,关于“java frame实现简易计算器的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。