您的位置:首页 > 编程语言 > Java开发

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

2017-05-17 16:47 369 查看
利用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()

ae75
.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);
}
}


效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java swing