GUIjava图形界面实现简单计算器

xiaoxiao2025-12-02  8

主类

import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import util.MyLookAndFeel; import util.UiUtil; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author 123 */ public class Test01 extends javax.swing.JFrame { /** * Creates new form Test01 */ public Test01() { initComponents(); init(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jButton1 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); aa2 = new javax.swing.JComboBox<>(); aa1 = new java.awt.TextField(); aa3 = new java.awt.TextField(); aa4 = new java.awt.TextField(); a4 = new java.awt.Button(); jButton1.setText("jButton1"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("第一个操作数"); jLabel2.setText("第二个操作数"); jLabel3.setText("结果"); jLabel4.setText("="); aa2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "+", "-", "*", "/" })); aa2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aa2ActionPerformed(evt); } }); aa1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aa1ActionPerformed(evt); } }); aa3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aa3ActionPerformed(evt); } }); aa4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aa4ActionPerformed(evt); } }); a4.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); a4.setLabel("计算"); a4.setName(""); // NOI18N a4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { a4ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGap(66, 66, 66) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addGap(5, 5, 5) .addComponent(aa1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(aa2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(aa3, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel2))) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(65, 65, 65) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 69, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(15, 15, 15) .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(aa4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(11, 11, 11))) .addGap(48, 48, 48)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(a4, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(39, 39, 39)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(51, 51, 51) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel2) .addComponent(jLabel3))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(aa2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(aa4, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(aa3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4))) .addComponent(aa1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE) .addComponent(a4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20)) ); a4.getAccessibleContext().setAccessibleDescription(""); pack(); }// </editor-fold> private void aa2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void aa4ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void aa1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void aa3ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void a4ActionPerformed(java.awt.event.ActionEvent evt) { int n1 = Integer.parseInt(this.aa1.getText().trim()); String s = this.aa2.getSelectedItem().toString(); int n2 = Integer.parseInt(this.aa3.getText().trim()); if(s.equals("+")){ aa4.setText(String.valueOf(n1+n2)); }else if(s.equals("-")){ aa4.setText(String.valueOf(n1-n2)); }else if(s.equals("*")){ aa4.setText(String.valueOf(n1*n2)); }else{ aa4.setText(String.format("%.2f", (double)n1/n2)); } } /** * @param args the command line arguments */ public static void main(String args[]) { try { /* Set the Nimbus look and feel */ UIManager.setLookAndFeel(MyLookAndFeel.JTATTOO_BERNSTEIN); } catch (ClassNotFoundException ex) { Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex); } catch (InstantiationException ex) { Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex); } catch (UnsupportedLookAndFeelException ex) { Logger.getLogger(Test01.class.getName()).log(Level.SEVERE, null, ex); } /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Test01().setVisible(true); } }); } // Variables declaration - do not modify private java.awt.Button a4; private java.awt.TextField aa1; private javax.swing.JComboBox<String> aa2; private java.awt.TextField aa3; private java.awt.TextField aa4; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; // End of variables declaration private void init() { this.setTitle("四则运算"); this.setResizable(false); //固定窗口大小 new UiUtil().setFrameImage(this); new UiUtil().setFrameCenter(this); } }

其中调用的工具类

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package util; import java.awt.Dimension; import java.awt.Frame; import java.awt.Image; import java.awt.Toolkit; /** * * @author 123 */ public class UiUtil { //设置窗体图标 public void setFrameImage(Frame tf){ Toolkit tl = Toolkit.getDefaultToolkit(); Image image = tl.getImage("src\\img\\2.jpg"); tf.setIconImage(image); } public void setFrameCenter(Frame tf){ Toolkit tl = Toolkit.getDefaultToolkit(); Dimension d = tl.getScreenSize(); int w = (int)((d.getWidth()-tf.getWidth())/2); int h = (int)((d.getHeight()-tf.getHeight())/2); tf.setLocation(w, h); } }

 我使用的皮肤类

package util; public abstract class MyLookAndFeel { public static String SYS_METAL = "javax.swing.plaf.metal.MetalLookAndFeel"; public static String SYS_NIMBUS = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"; public static String SYS_CDE_MOTIF = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; public static String SYS_WINDOWS = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; public static String SYS_WINDOWS_CLASSIC = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"; public static String JTATTOO_ACRYL = "com.jtattoo.plaf.acryl.AcrylLookAndFeel"; public static String JTATTOO_AERO = "com.jtattoo.plaf.aero.AeroLookAndFeel"; public static String JTATTOO_ALUMINUM = "com.jtattoo.plaf.aluminium.AluminiumLookAndFeel"; public static String JTATTOO_BERNSTEIN = "com.jtattoo.plaf.bernstein.BernsteinLookAndFeel"; public static String JTATTOO_FAST = "com.jtattoo.plaf.fast.FastLookAndFeel"; public static String JTATTOO_HIFI = "com.jtattoo.plaf.hifi.HiFiLookAndFeel"; public static String JTATTOO_LUNA = "com.jtattoo.plaf.luna.LunaLookAndFeel"; public static String JTATTOO_MCWIN = "com.jtattoo.plaf.mcwin.McWinLookAndFeel"; public static String JTATTOO_MINT = "com.jtattoo.plaf.mint.MintLookAndFeel"; public static String JTATTOO_NOIRE = "com.jtattoo.plaf.noire.NoireLookAndFeel"; public static String JTATTOO_SMART = "com.jtattoo.plaf.smart.SmartLookAndFeel"; public static String LIQUIDINF = "com.birosoft.liquid.LiquidLookAndFeel"; }

实现效果

 

转载请注明原文地址: https://www.6miu.com/read-5040224.html

最新回复(0)