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 [2018/03/27 20:55] 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> |
| </code> | </code> |
| |
| ===== JFrame Content Pane ===== | | Προηγούμενο: [[:swing:combo_box | ComboBoxes ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:swing:layout | Layout Managers ]] | |
| | |
| Όπως προαναφέραμε η κλάση //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()''. | |
| |
| |
| |