Java实现简单的计算器(GUI编程)

原创 2007年09月26日 14:39:00

/**

*程序编排不怎么好

*设计界面也是按自己的意愿做的

*但是执行还好.(Eclipse编写代码)

*@author 毛毛

*/

 

package GUI编程;
import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
import java.awt.Component;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*
 * 加/减, 乘/除 计算器
 * plus/minus , multiplication and division 
 */
public class CalculatorDemo extends JFrame
 implements ActionListener{

 private JLabel lbNum1, lbNum2, lbResult;
 private JTextField tfNum1, tfNum2;
 private JTextField tfResult;
 private JPanel InputPanel, RadioPanel, CalPanel;
 private JRadioButton rbPlus,rbMinus,rbMul,rbDiv;
 private JButton btnOk, btnClear;
 private ButtonGroup btg;
 
 private Container con;
 private GridBagLayout Layout;
 private GridBagConstraints cons;
 
 int n1, n2, sum;
 
 public CalculatorDemo(){
  
  super("计算器示例");
  setSize(350,260);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  con = this.getContentPane();
  con.setLayout(new GridLayout(3,1));
 }
 
 //以设定的网格包布局向面板中添加组件
 private void addComponent(JPanel panel, GridBagLayout Layout,
   GridBagConstraints gbc, Component com, int row, int column,
   int numRows, int numColumns, int Weightx, int Weighty){
  
  gbc.gridx = row;
  gbc.gridy = column;
  gbc.gridwidth = numRows;
  gbc.gridheight = numColumns;
  gbc.weightx = Weightx;
  gbc.weighty = Weighty;
  
  Layout.setConstraints(com, gbc);
  panel.add(com);
 }
 
 public void setLayout(){
  
  Layout = new GridBagLayout();
  cons = new GridBagConstraints();
  InputPanel = new JPanel();
  InputPanel.setLayout(Layout);
  
  cons.anchor = GridBagConstraints.CENTER;
 
  lbNum1 = new JLabel("数字1");
  cons.fill = GridBagConstraints.NONE;
  addComponent(InputPanel, Layout, cons, lbNum1,
    0, 0, 1, 1, 6, 0);  
  //创建数字1文本框和输入面板
  tfNum1 = new JTextField();
  cons.fill = GridBagConstraints.HORIZONTAL;
  addComponent(InputPanel, Layout, cons, tfNum1,
    1, 0, 1, 1, 80, 100);
    
  lbNum2 = new JLabel("数字2");
  cons.fill = GridBagConstraints.NONE;
  addComponent(InputPanel, Layout, cons, lbNum2,
    0, 1, 1, 1, 6, 0);  
  //创建数字2文本框和输入面板
  tfNum2 = new JTextField();
  cons.fill = GridBagConstraints.HORIZONTAL;
  addComponent(InputPanel, Layout, cons, tfNum2,
    1, 1, 1, 1, 80, 100);
  
  
  lbResult = new JLabel("结果");
  cons.fill = GridBagConstraints.NONE;
  addComponent(InputPanel, Layout, cons, lbResult,
    0, 2, 1, 1, 6, 0);  
  //创建姓名文本框和输入面板
  tfResult = new JTextField();
  cons.fill = GridBagConstraints.HORIZONTAL;
  addComponent(InputPanel, Layout, cons, tfResult,
    1, 2, 1, 1, 80, 100);
  
  //添加按钮
  RadioPanel = new JPanel();
  RadioPanel.setLayout(new GridLayout(1,4));
  
  rbPlus = new JRadioButton("加");
  rbPlus.addActionListener(this);
  //rbPlus.setSelected(true);
  
  rbMinus = new JRadioButton("减");
  rbMinus.addActionListener(this);
  
  rbMul = new JRadioButton("乘");
  rbMul.addActionListener(this);
  
  rbDiv = new JRadioButton("除"); 
  rbDiv.addActionListener(this);
  
  btg = new ButtonGroup();
  btg.add(rbPlus);
  btg.add(rbMinus);
  btg.add(rbMul);
  btg.add(rbDiv);
  RadioPanel.add(rbPlus);
  RadioPanel.add(rbMinus);
  RadioPanel.add(rbMul);
  RadioPanel.add(rbDiv);
  
  CalPanel = new JPanel();
  CalPanel.setLayout(null);
  
  btnOk = new JButton("运  算");
  CalPanel.add(btnOk);
  btnOk.setSize(70, 30);
  btnOk.setBounds(20, 20, 70, 30);
  
  btnClear = new JButton("清  除");
  CalPanel.add(btnClear);
  btnClear.setSize(70, 30);
  btnClear.setBounds(120,20,70,30);
    
  //将面板添加到框架
  con.add(InputPanel);
  con.add(RadioPanel);
  con.add(CalPanel);
  
  //监听器
  btnOk.addActionListener(this);
  btnClear.addActionListener(this);
 }
 public static void main(String[] args) {
  
        CalculatorDemo frame = new CalculatorDemo();
        frame.setLayout();
        frame.show();
 }

 @Override
 public void actionPerformed(ActionEvent e) {
  Double Result = null;
  Double n1,n2;
  String s1,s2;
  String ss;
  n1 = Double.parseDouble(tfNum1.getText());
  n2 = Double.parseDouble(tfNum2.getText());
  
  if(e.getSource() == btnOk){   
   if(rbPlus.isSelected()){    
    Result = n1 + n2;    
   }
   else if(rbMinus.isSelected()){
    Result = n1 - n2;   
   }
   else if(rbMul.isSelected()){
    Result = n1 * n2;    
   }
   else if(rbDiv.isSelected()){
    Result = n1 / n2;    
   }
   else{
    
    JOptionPane.showMessageDialog(null, "没有选中按钮",
      "提示", JOptionPane.INFORMATION_MESSAGE);
   }
      ss = Result.toString();
   tfResult.setText(ss);
   InputPanel.add(tfResult); 
   } 
  if(e.getSource() == btnClear){
   tfNum1.setText("");
   tfNum2.setText("");
   tfResult.setText("");
   InputPanel.add(tfNum1);
   InputPanel.add(tfNum2);
   InputPanel.add(tfResult); 
  }
 } 
}
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java GUI 简单计算器实现

用java语言GUI实现计算器,基本功能都实现,但没能实现运算度的优先级运算

java GUI编程-贪吃蛇游戏简单实现

例子简单,界面简陋 请见谅 项目结构如下 Constant.jvava 代码如下: package snake; /**  *   * @author hjn  *   */ public...

java GUI编程-贪吃蛇游戏简单实现

例子简单,界面简陋 请见谅 项目结构如下 Constant.jvava 代码如下: package snake; /**  *   * @author hjn ...

java语言简单GUI计算器

Unity3d学习笔记2——GUI实现简单计算器

Unity3d学习笔记2——GUI实现简单计算器 基础知识 OnGUI函数 Canvas画布

Python Qt GUI快速编程-第四章的计算器python3+pytq5+Qt Designer实现

本代码为本人通过python3+pytq5+Qt desinger实现Python Qt GUI快速编程-第四章的计算器功能,还在原有例子上增加了两个按钮,请大家参考。

GUI 简单加法计算器模拟 监听事件获取其他域的属性值 窗口关闭的监听事件

闲来无事,学学图形界面开发,没准什么时候自己写个东西,会有很实用的价值。 一直没想明白,当点击按钮的时候,怎么获取其他如文本框的属性值?? 今天看了马士兵老师的视频,通过一种门面模式的方法,将所需...

黑白棋算法简单实现与基于Qt的GUI编程的综合应用

一、序言:最近学习了Qt的界面编程,包括了QObject、QWidget、QIODevice、QMessageBox、QTcpSockt、QTcpServer、QFile、QFileInfo、QDat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)