Java实例-Swing简易计算器(加,减,乘,数)

来源:互联网 发布:sql server 2017 收费 编辑:程序博客网 时间:2024/05/09 00:54

利用Swing制作一个简易计算器,实现“加,减,乘,除”功能

import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.JTextField;import javax.swing.LayoutStyle.ComponentPlacement;import javax.swing.JButton;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.border.TitledBorder;import javax.swing.JLabel;import java.awt.Font;import java.awt.Color;public class TsetUI extends JFrame implements ActionListener{    private JPanel contentPane;    private JTextField t1;    private JTextField t2;    private JTextField t3;    private JButton b1;    private JButton b2;    private JButton b3;    private JButton b4;    private JPanel panel_1;    /**     * Launch the application.     */    public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() {            public void run() {                try {                    TsetUI frame = new TsetUI();                    frame.setVisible(true);                } catch (Exception e) {                    e.printStackTrace();                }            }        });    }    /**     * Create the frame.     */    public TsetUI() {        setTitle("简易计算器");        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        setBounds(100, 100, 488, 292);        contentPane = new JPanel();        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));        setContentPane(contentPane);        JPanel panel = new JPanel();        panel.setBorder(new TitledBorder(null, "\u64CD\u4F5C\u533A", TitledBorder.LEADING, TitledBorder.TOP, null, null));        panel_1 = new JPanel();        panel_1.setBorder(new TitledBorder(null, "\u8F93\u5165\u533A", TitledBorder.LEADING, TitledBorder.TOP, null, null));        JPanel panel_2 = new JPanel();        panel_2.setBorder(new TitledBorder(null, "\u7ED3\u679C\u533A", TitledBorder.LEADING, TitledBorder.TOP, null, null));        JLabel lblWwwbigningwin = new JLabel("www.bigning.win");        lblWwwbigningwin.setForeground(Color.GRAY);        JLabel lblWwwbigningtop = new JLabel("www.bigning.top");        lblWwwbigningtop.setForeground(Color.GRAY);        JLabel lblNewLabel = new JLabel("BLOG");        lblNewLabel.setForeground(Color.DARK_GRAY);        GroupLayout gl_contentPane = new GroupLayout(contentPane);        gl_contentPane.setHorizontalGroup(            gl_contentPane.createParallelGroup(Alignment.TRAILING)                .addGroup(gl_contentPane.createSequentialGroup()                    .addContainerGap()                    .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)                        .addComponent(lblWwwbigningtop, GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)                        .addGroup(gl_contentPane.createSequentialGroup()                            .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)                                .addComponent(panel, 0, 0, Short.MAX_VALUE)                                .addComponent(panel_1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))                            .addGap(18)                            .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)                                .addComponent(panel_2, GroupLayout.DEFAULT_SIZE, 247, Short.MAX_VALUE)                                .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)                                    .addComponent(lblNewLabel)                                    .addComponent(lblWwwbigningwin)))))                    .addGap(18))        );        gl_contentPane.setVerticalGroup(            gl_contentPane.createParallelGroup(Alignment.TRAILING)                .addGroup(gl_contentPane.createSequentialGroup()                    .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)                        .addGroup(gl_contentPane.createSequentialGroup()                            .addContainerGap()                            .addComponent(panel_1, GroupLayout.PREFERRED_SIZE, 102, GroupLayout.PREFERRED_SIZE)                            .addPreferredGap(ComponentPlacement.RELATED)                            .addComponent(panel, GroupLayout.PREFERRED_SIZE, 111, GroupLayout.PREFERRED_SIZE))                        .addGroup(gl_contentPane.createSequentialGroup()                            .addGap(26)                            .addComponent(panel_2, GroupLayout.PREFERRED_SIZE, 112, GroupLayout.PREFERRED_SIZE)                            .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                            .addComponent(lblNewLabel)                            .addPreferredGap(ComponentPlacement.RELATED)                            .addComponent(lblWwwbigningwin)))                    .addPreferredGap(ComponentPlacement.RELATED)                    .addComponent(lblWwwbigningtop)                    .addContainerGap(13, Short.MAX_VALUE))        );        t3 = new JTextField();        t3.setFont(new Font("Lucida Grande", Font.PLAIN, 75));        t3.setColumns(10);        GroupLayout gl_panel_2 = new GroupLayout(panel_2);        gl_panel_2.setHorizontalGroup(            gl_panel_2.createParallelGroup(Alignment.LEADING)                .addGroup(Alignment.TRAILING, gl_panel_2.createSequentialGroup()                    .addContainerGap()                    .addComponent(t3, GroupLayout.DEFAULT_SIZE, 223, Short.MAX_VALUE)                    .addContainerGap())        );        gl_panel_2.setVerticalGroup(            gl_panel_2.createParallelGroup(Alignment.LEADING)                .addGroup(gl_panel_2.createSequentialGroup()                    .addComponent(t3, GroupLayout.PREFERRED_SIZE, 82, Short.MAX_VALUE)                    .addContainerGap())        );        panel_2.setLayout(gl_panel_2);        t1 = new JTextField();        t1.setColumns(2);        t2 = new JTextField();        t2.setColumns(2);        JLabel label = new JLabel("操作数1");        JLabel label_1 = new JLabel("操作数2");        GroupLayout gl_panel_1 = new GroupLayout(panel_1);        gl_panel_1.setHorizontalGroup(            gl_panel_1.createParallelGroup(Alignment.TRAILING)                .addGroup(gl_panel_1.createSequentialGroup()                    .addContainerGap()                    .addGroup(gl_panel_1.createParallelGroup(Alignment.LEADING)                        .addComponent(label)                        .addComponent(label_1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE))                    .addPreferredGap(ComponentPlacement.RELATED)                    .addGroup(gl_panel_1.createParallelGroup(Alignment.TRAILING)                        .addComponent(t1, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 112, Short.MAX_VALUE)                        .addComponent(t2, Alignment.LEADING, 0, 0, Short.MAX_VALUE))                    .addContainerGap())        );        gl_panel_1.setVerticalGroup(            gl_panel_1.createParallelGroup(Alignment.LEADING)                .addGroup(gl_panel_1.createSequentialGroup()                    .addContainerGap()                    .addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE)                        .addComponent(t1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)                        .addComponent(label))                    .addGap(12)                    .addGroup(gl_panel_1.createParallelGroup(Alignment.BASELINE)                        .addComponent(t2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)                        .addComponent(label_1))                    .addContainerGap(16, Short.MAX_VALUE))        );        panel_1.setLayout(gl_panel_1);        b1 = new JButton("+");        b2 = new JButton("-");        b2.addActionListener(this);        b3 = new JButton("*");        b3.addActionListener(this);        b4 = new JButton("/");        b4.addActionListener(this);        GroupLayout gl_panel = new GroupLayout(panel);        gl_panel.setHorizontalGroup(            gl_panel.createParallelGroup(Alignment.LEADING)                .addGroup(gl_panel.createSequentialGroup()                    .addContainerGap()                    .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)                        .addGroup(gl_panel.createSequentialGroup()                            .addComponent(b1)                            .addGap(18)                            .addComponent(b2))                        .addGroup(gl_panel.createSequentialGroup()                            .addComponent(b3)                            .addGap(18)                            .addComponent(b4)))                    .addContainerGap(19, Short.MAX_VALUE))        );        gl_panel.setVerticalGroup(            gl_panel.createParallelGroup(Alignment.LEADING)                .addGroup(gl_panel.createSequentialGroup()                    .addGap(17)                    .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)                        .addComponent(b1)                        .addComponent(b2))                    .addPreferredGap(ComponentPlacement.RELATED)                    .addGroup(gl_panel.createParallelGroup(Alignment.BASELINE)                        .addComponent(b3)                        .addComponent(b4))                    .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))        );        panel.setLayout(gl_panel);        b1.addActionListener(this);        contentPane.setLayout(gl_contentPane);    }    public void actionPerformed(ActionEvent e) {            String command = e.getActionCommand();            String result ;            double d1 = Double.parseDouble(t1.getText());            double d2 = Double.parseDouble(t2.getText());            if (command.equals("+")) {                       result = (d1+d2)+" ";            } else if (command.equals("-")) {                result = (d1-d2)+" ";            } else if (command.equals("*")) {                result = (d1*d2)+"";            } else if(command.equals("/")){                result = (d1/d2)+" ";            }else{                result = "Error";            }            t3.setText(result);        }}

效果图
这里写图片描述

原创粉丝点击