有加减乘除小数点等于的运算就行了,反正我开始点需other, 然后点jframe,进入页面之后点一下水平制然后就点什么jbutton
jText之类的,然后这些按钮里面写什么内容呢??我就不会了
1 回答
已采纳
大咪
TA贡献785条经验 获得超332个赞
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calc extends JFrame implements ActionListener { private static final long serialVersionUID = -169068472193786457L; private class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent we) { System.exit(0); } } int i; private final String[] str = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", ".", "0", "=", "+" }; // 建立按钮 JButton[] buttons = new JButton[str.length]; // 撤销重置 JButton reset = new JButton("CE"); // 建立文本域显示结果 JTextField display = new JTextField("0"); public Calc() { super("Calculator"); // 添加一个面板 JPanel panel1 = new JPanel(new GridLayout(4, 4)); // panel1.setLayout(new GridLayout(4,4)); for (i = 0; i < str.length; i++) { buttons[i] = new JButton(str[i]); panel1.add(buttons[i]); } JPanel panel2 = new JPanel(new BorderLayout()); // panel2.setLayout(new BorderLayout()); panel2.add("Center", display); panel2.add("East", reset); // JPanel panel3 = new Panel(); getContentPane().setLayout(new BorderLayout()); getContentPane().add("North", panel2); getContentPane().add("Center", panel1); // 添加操作动作的监听器. for (i = 0; i < str.length; i++) buttons[i].addActionListener(this); // 为重置按钮添加监听器 reset.addActionListener(this); display.addActionListener(this); // The "close" button "X". addWindowListener(new WindowCloser()); // Initialize the window size. setSize(800, 800); // Show the window. // show(); Using show() while JDK version is below 1.5. setVisible(true); // Fit the certain size. pack(); } public void actionPerformed(ActionEvent e) { Object target = e.getSource(); String label = e.getActionCommand(); if (target == reset) handleReset(); else if ("0123456789.".indexOf(label) > 0) handleNumber(label); else handleOperator(label); } // Is the first digit pressed? boolean isFirstDigit = true; /** * Number handling. * @param key the key of the button. */ public void handleNumber(String key) { if (isFirstDigit) display.setText(key); else if ((key.equals(".")) && (display.getText().indexOf(".") < 0)) display.setText(display.getText() + "."); else if (!key.equals(".")) display.setText(display.getText() + key); isFirstDigit = false; } /** * Reset the calculator. */ public void handleReset() { display.setText("0"); isFirstDigit = true; operator = "="; } double number = 0.0; String operator = "="; public void handleOperator(String key) { if (operator.equals("+")) number += Double.valueOf(display.getText()); else if (operator.equals("-")) number -= Double.valueOf(display.getText()); else if (operator.equals("*")) number *= Double.valueOf(display.getText()); else if (operator.equals("/")) number /= Double.valueOf(display.getText()); else if (operator.equals("=")) number = Double.valueOf(display.getText()); display.setText(String.valueOf(number)); operator = key; isFirstDigit = true; } public static void main(String[] args) { new Calc(); } }
你创建完的面板需要继承一个监听器,他的目的是监听你的按键并将参数传入,算法部分就是很简单的+-*/
添加回答
举报
0/150
提交
取消