swing:panels

Differences

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

Link to this comparison view

swing:panels [2015/05/04 05:43]
gthanos
swing:panels [2016/02/26 11:15]
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: 2016/02/26 11:15 (external edit)