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.GroupLayout进行布局有关管理器的实例讲解
- Java_swing_图形化界面实例应用
- Java Swing简单控件实例(JButton,JLabel,JMenuBar,JComboBo)
- 利用java的swing组件制作简易计算器
- java Swing基础教程之图形化实例代码
- java Swing画弧线三角形矩形渐变旋转实现实例教程演示demo付源代码
- Java Swing组件JFileChooser用法实例分析
- java 简易计算器Swing
- java Swing JTable的复杂应用实例
- 基于java Swing测TCP Socket 实例
- Java_swing控件实例
- java Swing编程之布局管理器简单实例DEMO
- Java SwingWorkder使用实例
- Java Swing简单控件实例(JButton,JLabel,JMenuBar,JComboBo)
- Java Swing中的文本框(JTextField)与文本区(JTextArea)使用实例
- Java Swing 非常漂亮外观Nimbus的使用方法实例
- JavaSwing图形界面编程之简易计算器(一)
- java swing开发的图像生成器demo实例源代码下载,实现绘制图像,截屏功能。
- Java Swing 每次打开只运行一个实例,并激活任务栏里的程序
- java swing最简单实例(2) 往JFrame里面放一个容器或组件