User Tools

Site Tools


swing:panels

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
swing:panels [2015/05/04 05:43]
gthanos
swing:panels [2018/04/13 08:44]
Line 1: Line 1:
-====== Panels ====== 
- 
-Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα layouts που είδαμε προηγούμενα.  
- 
-Ένας τρόπος για να φτιάξετε πολύπλοκα layouts είναι να χρησιμοποιήσετε Panels. Κάθε panel ανήκει στην κλάση [[http://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html|JPanel]]. Αν και πρόκειται για μία από τις πιο απλές κλάσεις απόγονους της κλάση [[http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html|Container]] στην πραγματικότητα είναι μία εξαιρετικά χρήσιμη κλάση διότι μπορείτε να προσθέτετε Panels μέσα σε Panels ή Frames δημιουργώντας πολύπλοκες συνθέσεις παραθύρων. Για παράδειγμα, πως μπορείτε σε μία θέση ενός από τα layouts που παρουσιάσαμε να προσθέσετε δύο κουμπιά (π.χ. //BorderLayout//). Αυτό μπορείτε να το κάνετε μόνο εάν στη συγκεκριμένη θέση προσθέσετε ένα panel, το οποίο περιέχει τα δύο κουμπιά. 
- 
-<code java BorderLayoutPanelDemo.java> 
-import javax.swing.*; 
-import java.awt.event.ActionListener; 
-import java.awt.event.ActionEvent; 
-import java.awt.*; 
- 
-public class BorderLayoutPanelDemo extends JFrame { 
-  public BorderLayoutPanelDemo () { 
-    super(); 
-    setSize(400, 150); 
-    setTitle("BorderLayout Demo"); 
-    setLayout(new BorderLayout()); 
-    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
-     
-    ButtonListener listener = new ButtonListener(); 
-     
-    okCancelPanel(this);     
-     
-    JButton centerButton = new JButton("Close Window Button"); 
-    centerButton.addActionListener( listener ); 
-    add(centerButton, BorderLayout.CENTER); 
-  } 
-   
-  private void okCancelPanel(Container container) { 
-    JPanel southPanel = new JPanel(); 
-    southPanel.setLayout(new FlowLayout()); 
-    container.add(southPanel,  BorderLayout.SOUTH); 
-     
-    JButton cancelButton = new JButton("Cancel");     
-    southPanel.add(cancelButton); 
-     
-    JButton okButton = new JButton("OK!"); 
-    southPanel.add(okButton);     
-  } 
-   
-  public class ButtonListener implements ActionListener { 
-    public void actionPerformed(ActionEvent e) { 
-      System.out.println(e); 
-      System.exit(1); 
-    } 
-  } 
-   
-  public static void main(String[] args) { 
-    BorderLayoutPanelDemo w = new BorderLayoutPanelDemo(); 
-    w.setVisible(true); 
-  } 
-} 
-</code> 
  
swing/panels.txt · Last modified: 2018/04/13 08:44 (external edit)