用Swing 做一个简易的计算器

package com.java1234.chap09.sect09;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* 做一个简易的计算器
* @author Administrator
* @see JFrame
* @see ActionListener
*/
//创建计算器SwingTest3类,实现ActionListener接口
public class SwingTest3 extends JFrame implements ActionListener {
/**
    * Serial Version UID
    */
private static final long serialVersionUID = -169068472193786457L;
   /**
    * 建一个类来 关闭窗口
    * @author Administrator
    *
    */
private class WindowCloser extends WindowAdapter {
 //重写父类的关闭窗体的方法
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
 }
int i;
//这里定义要操作的对应的数字或符号的按钮
private final String[] str = { "7", "8", "9", "/", "4", "5", "6", "*", "1",
          "2", "3", "-", ".", "0", "=", "+" };
//创建按钮  这边定义一个 JButton按钮数组
JButton[] jbuttons=new JButton[str.length]; //传入str的长度,就说明要建几个按钮了
//创建一个结果按钮 或者取消按钮,用于输出结果 ,或者取消结果
JButton reset = new JButton("CE");
//创建一个结果文本框
JTextField display = new JTextField("0");
/**
* 创建一个无参数构造方法,它的作用是可以用来初始化,
* 也就是和类名相同的方法,即构造方法
* 在new 一个类对象的时候 会调用该构造方法
*/
public SwingTest3(){
super("这是一个简易计算器");   //建窗体的标题
//添加一个容器 按 4*4网格布局
JPanel panel1 = new JPanel(new GridLayout(4, 4)); //这个组件用于添加按钮的
// panel1.setLayout(new GridLayout(4,4));
//依次添加按钮到面板中
for (i = 0; i < str.length; i++) {
jbuttons[i] = new JButton(str[i]);
          panel1.add(jbuttons[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(int i=0;i0){
handleNumber(label);  
}else
handleOperator(label);
}
//判断第一个输入的数据?
boolean isFirstDigit = true;
/**
    * Number handling. 在文本框里面显示我们要点击的数据
    * @param key the key of the button.
    */
private void handleNumber(String key) {
if (isFirstDigit){ //一开始肯定是 true
          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; //输完第一个值后,置为false
}
/**
* 重置计算器 ce按钮
* 点击这个ce  按钮的时候 ,
* 我们把 isFirstDigit operator display 这三个地方重置为初始值
*/
private void handleReset() {
display.setText("0");
isFirstDigit = true;  //数据输完我们重置为true
operator = "=";
}
double number = 0.0; //设置计算的初始值为0.0
String operator = "=";   //计算加"+ - * / = ."  
/**
*  
    * Handling the operation.
    * @param key pressed operator's key.
    * 设计+ - * / = .的监听事件
* @param key
*/
private 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) {
   //定义一个匿名对象 会默认调用里面的构造方法,SwingTest3()
new SwingTest3();  
}
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31369373/viewspace-2125029/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31369373/viewspace-2125029/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您指导如何用 Java Swing 编写一个简单计算器。 首先,您需要创建一个 GUI 界面来显示计算器。您可以使用 JFrame 来创建窗口,使用 JLabel 来显示结果,以及使用 JButton 来添加数字和操作符按钮。 以下是一个简单的代码片段,可以创建窗口并添加两个按钮: ``` import javax.swing.*; public class Calculator { public static void main(String[] args) { JFrame frame = new JFrame("Calculator"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); frame.getContentPane().add(button1); frame.getContentPane().add(button2); frame.pack(); frame.setVisible(true); } } ``` 这将创建一个名为 "Calculator" 的窗口,并添加两个按钮 "Button 1" 和 "Button 2"。您可以在类似的方式下添加更多的按钮以及其他组件。 接下来,您需要编写处理按钮点击的代码。当用户点击数字按钮时,您需要更新显示结果的标签。当用户点击操作符按钮时,您需要执行相应的计算并更新标签上的值。 以下是一个简单的代码片段,可以处理数字按钮的点击事件: ``` button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Get the current text of the label and append the clicked digit String currentText = label.getText(); String clickedDigit = "1"; // Replace with the actual digit that was clicked label.setText(currentText + clickedDigit); } }); ``` 此代码使用 addActionListener() 方法为按钮添加 ActionListener,当用户点击按钮时将调用 actionPerformed() 方法。此方法将获取标签的当前文本内容,并将点击的数字附加到文本的末尾,然后将更新标签的文本。 您可以在类似的方式下编写代码,以处理操作符按钮的点击事件,并执行所需的计算。 希望这可以帮助您开始编写一个简单计算器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值