Differences
This shows you the differences between two versions of the page.
| Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
swing:panels [2015/05/05 12:36] gthanos |
swing:panels [2017/04/03 15:18] gthanos [JFrame Content Pane] |
| Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα layouts που είδαμε προηγούμενα. | Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα 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, το οποίο περιέχει τα δύο κουμπιά. | Ένας τρόπος για να φτιάξετε πολύπλοκα 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> | <code java BorderLayoutPanelDemo.java> |
| ===== JFrame Content Pane ===== | ===== JFrame Content Pane ===== |
| |
| Όπως προαναφέραμε η κλάση //JFrame// δημιουργεί το εξωτερικό παράθυρο με τα τρία κουμπιά (συνήθως πάνω δεξιά - εξαρτάται από το λειτουργικό σύστημα). Όμως το JFrame μήπως έχει και αυτό ένα Panel ή κάποιο αντικείμενο τύπου [[http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html|Container]] στο οποίο μπορούμε να προσθέτουμε άλλα [[http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html|Components]]. Το JFrame διαθέτει ένα [[http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html|Container]] το οποίο λαμβάνουμε από την μέθοδο ''public Container getContentPane()''. | Όπως προαναφέραμε η κλάση //JFrame// δημιουργεί το εξωτερικό παράθυρο με τα τρία κουμπιά (συνήθως πάνω δεξιά - εξαρτάται από το λειτουργικό σύστημα). Το JFrame περιέχει και αυτό ένα Panel ή κάποιο αντικείμενο τύπου [[http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html|Container]] στο οποίο μπορούμε να προσθέτουμε άλλα [[http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html|Components]]. Το JFrame διαθέτει ένα [[http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html|Container]] το οποίο λαμβάνουμε από την μέθοδο ''public Container getContentPane()''. |
| |
| |
| |
| |