Java:简单的Swing用户界面和监听按钮点击事件

下面的程序,显示一个按钮和一个标签。每次点击按钮时,标签都将更新。

package hustspy;      import Javax.swing.*;             import java.awt.*;   import java.awt.event.*;      public class hello implements ActionListener {       private static String labelPrefix = "Number of button clicks: ";       private int numClicks = 0;       final JLabel label = new JLabel(labelPrefix + "0    ");          //Specify the look and feel to use.  Valid values:        //null (use the default), "Metal", "System", "Motif", "GTK+"        final static String LOOKANDFEEL = "System";          public Component createComponents() {           JButton button = new JButton("I'm a Swing button!");           button.setMnemonic(KeyEvent.VK_I);           button.addActionListener(this);           label.setLabelFor(button);              /*           * An easy way to put space between a top-level container           * and its contents is to put the contents in a JPanel           * that has an "empty" border.           */           JPanel pane = new JPanel(new GridLayout(01));           pane.add(button);           pane.add(label);           pane.setBorder(BorderFactory.createEmptyBorder(                                           30//top                                            30//left                                            10//bottom                                            30//right                                            );              return pane;       }          public void actionPerformed(ActionEvent e) {           numClicks++;           label.setText(labelPrefix + numClicks);       }          private static void initLookAndFeel() {           String lookAndFeel = null;              if (LOOKANDFEEL != null) {               if (LOOKANDFEEL.equals("Metal")) {                   lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();               } else if (LOOKANDFEEL.equals("System")) {                   lookAndFeel = UIManager.getSystemLookAndFeelClassName();               } else if (LOOKANDFEEL.equals("Motif")) {                   lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";               } else if (LOOKANDFEEL.equals("GTK+")) { //new in 1.4.2                    lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";               } else {                   System.err.println("Unexpected value of LOOKANDFEEL specified: "                                      + LOOKANDFEEL);                   lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();               }                  try {                   UIManager.setLookAndFeel(lookAndFeel);               } catch (ClassNotFoundException e) {                   System.err.println("Couldn't find class for specified look and feel:"                                      + lookAndFeel);                   System.err.println("Did you include the L&F library in the class path?");                   System.err.println("Using the default look and feel.");               } catch (UnsupportedLookAndFeelException e) {                   System.err.println("Can't use the specified look and feel ("                                      + lookAndFeel                                      + ") on this platform.");                   System.err.println("Using the default look and feel.");               } catch (Exception e) {                   System.err.println("Couldn't get specified look and feel ("                                      + lookAndFeel                                      + "), for some reason.");                   System.err.println("Using the default look and feel.");                   e.printStackTrace();               }           }       }          /**       * Create the GUI and show it.  For thread safety,       * this method should be invoked from the       * event-dispatching thread.       */       private static void createAndShowGUI() {           //Set the look and feel.---设置外观,可以忽略            initLookAndFeel();              //Make sure we have nice window decorations.            //设置为false的话,即为不改变外观            JFrame.setDefaultLookAndFeelDecorated(true);              //Create and set up the window.            JFrame frame = new JFrame("SwingApplication");           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);              hello app = new hello();           Component contents = app.createComponents();           frame.getContentPane().add(contents, BorderLayout.CENTER);              //Display the window.            frame.pack();           frame.setVisible(true);       }          public static void main(String[] args) {           //Schedule a job for the event-dispatching thread:            //creating and showing this application's GUI.            javax.swing.SwingUtilities.invokeLater(new Runnable() {               public void run() {                   createAndShowGUI();               }           });       }   }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwdxdp.html