swing:buttons

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

swing:buttons [2015/05/11 04:28]
gthanos created
swing:buttons [2016/02/26 11:15]
Line 1: Line 1:
-====== Buttons, Check Boxes & Radio Buttons ====== 
- 
-Για την δημιουργία ενός button μπορείτε να χρησιμοποιήσετε μία κλάση από τις απογόνους της κλάσης [[https://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​AbstractButton.html|javax.swing.AbstractButton]],​ όπως οι [[https://​docs.oracle.com/​javase/​8/​docs/​api/​javax/​swing/​JButton.html|JButton]],​ [[https://​docs.oracle.com/​javase/​8/​docs/​api/​javax/​swing/​JCheckBox.html|JCheckBox]] 
- ή [[https://​docs.oracle.com/​javase/​8/​docs/​api/​javax/​swing/​JRadioButton.html|JRadioButton]]. Άλλες υποκλάσεις της κλάσης //​AbstractButton//​ είναι οι [[https://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​JMenuItem.html|JMenuItem]],​ [[https://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​JCheckBoxMenuItem.html|JCheckBoxMenuItem]] και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​javax/​swing/​JRadioButtonMenuItem.html|JRadioButtonMenuItem]] τις οποίες θα δούμε στη συνέχεια. 
- 
-===== Η κλάση JButton ===== 
- 
-Δείτε, μεταγλωττίστε και τρέξτε το παρακάτω παράδειγμα από το site της Oracle, το οποίο και θα συζητήσουμε στη συνέχεια. 
-<code java> 
-package components; 
- 
-import javax.swing.AbstractButton;​ 
-import javax.swing.JButton;​ 
-import javax.swing.JPanel;​ 
-import javax.swing.JFrame;​ 
-import javax.swing.ImageIcon;​ 
- 
-import java.awt.event.ActionEvent;​ 
-import java.awt.event.ActionListener;​ 
-import java.awt.event.KeyEvent;​ 
- 
-/*  
- * ButtonDemo.java requires the following files: 
- ​* ​  ​images/​right.gif 
- ​* ​  ​images/​middle.gif 
- ​* ​  ​images/​left.gif 
- */ 
-public class ButtonDemo extends JPanel 
-            implements ActionListener { 
-  protected JButton b1, b2, b3; 
- 
-  public ButtonDemo() { 
-    ImageIcon leftButtonIcon = createImageIcon("​images/​right.gif"​);​ 
-    ImageIcon middleButtonIcon = createImageIcon("​images/​middle.gif"​);​ 
-    ImageIcon rightButtonIcon = createImageIcon("​images/​left.gif"​);​ 
- 
-    b1 = new JButton("​Disable middle button",​ leftButtonIcon);​ 
-    b1.setVerticalTextPosition(AbstractButton.CENTER);​ 
-    b1.setHorizontalTextPosition(AbstractButton.LEADING);​ //aka LEFT, for left-to-right locales 
-    b1.setMnemonic(KeyEvent.VK_D);​ 
-    b1.setActionCommand("​disable"​);​ 
- 
-    b2 = new JButton("​Middle button",​ middleButtonIcon);​ 
-    b2.setVerticalTextPosition(AbstractButton.BOTTOM);​ 
-    b2.setHorizontalTextPosition(AbstractButton.CENTER);​ 
-    b2.setMnemonic(KeyEvent.VK_M);​ 
- 
-    b3 = new JButton("​Enable middle button",​ rightButtonIcon);​ 
-    //Use the default text position of CENTER, TRAILING (RIGHT). 
-    b3.setMnemonic(KeyEvent.VK_E);​ 
-    b3.setActionCommand("​enable"​);​ 
-    b3.setEnabled(false);​ 
- 
-    //Listen for actions on buttons 1 and 3. 
-    b1.addActionListener(this);​ 
-    b3.addActionListener(this);​ 
- 
-    b1.setToolTipText("​Click this button to disable the middle button."​);​ 
-    b2.setToolTipText("​This middle button does nothing when you click it."); 
-    b3.setToolTipText("​Click this button to enable the middle button."​);​ 
- 
-    //Add Components to this container, using the default FlowLayout. 
-    add(b1); 
-    add(b2); 
-    add(b3); 
-  } 
- 
-  public void actionPerformed(ActionEvent e) { 
-    if ("​disable"​.equals(e.getActionCommand())) { 
-      b2.setEnabled(false);​ 
-      b1.setEnabled(false);​ 
-      b3.setEnabled(true);​ 
-    } else { 
-      b2.setEnabled(true);​ 
-      b1.setEnabled(true);​ 
-      b3.setEnabled(false);​ 
-    } 
-  } 
- 
-  /** Returns an ImageIcon, or null if the path was invalid. */ 
-  protected static ImageIcon createImageIcon(String path) { 
-    java.net.URL imgURL = ButtonDemo.class.getResource(path);​ 
-    if (imgURL != null) { 
-      return new ImageIcon(imgURL);​ 
-    } else { 
-      System.err.println("​Couldn'​t find file: " + path); 
-      return null; 
-    } 
-  } 
- 
-  /** 
-   * Create the GUI and show it.  For thread safety, ​ 
-   * this method should be invoked from the  
-   * event-dispatching thread. 
-   */ 
-  private static void createAndShowGUI() { 
- 
-    //Create and set up the window. 
-    JFrame frame = new JFrame("​ButtonDemo"​);​ 
-    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);​ 
- 
-    //Create and set up the content pane. 
-    ButtonDemo newContentPane = new ButtonDemo();​ 
-    newContentPane.setOpaque(true);​ //content panes must be opaque 
-    frame.setContentPane(newContentPane);​ 
- 
-    //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(); ​ 
-      } 
-    }); 
-  } 
-} 
-</​code>​ 
-Το παραπάνω παράδειγμα απαιτεί την χρήση των παρακάτω εικόνων {{:​swing:​buttondemoimages.zip|}} 
  
swing/buttons.txt · Last modified: 2016/02/26 11:15 (external edit)