User Tools

Site Tools


swing:buttons

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
swing:buttons [2015/05/11 04:28]
gthanos created
swing:buttons [2018/03/27 16:31]
gthanos
Line 1: Line 1:
 ====== Buttons, Check Boxes & Radio Buttons ====== ====== 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]] +Για την δημιουργία ενός 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/7/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]] τις οποίες θα δούμε στη συνέχεια.+ ή [[https://docs.oracle.com/javase/7/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 =====+  * [[swing:jbutton|Buttons]] 
 +  * [[swing:jcheckbox|CheckBoxes]] 
 +  * [[swing:jradiobutton|RadioButtons]]
  
-Δείτε, μεταγλωττίστε και τρέξτε το παρακάτω παράδειγμα από το 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: 2018/03/27 19:38 (external edit)