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 revisionPrevious revision
Next revision
Previous revision
swing:panels [2018/03/27 20:55] – [JFrame Content Pane] gthanosswing:panels [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 3: Line 3:
 Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα 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 δημιουργώντας πολύπλοκες συνθέσεις παραθύρων. Για παράδειγμα, πως μπορείτε σε μία θέση ενός παραθύρου να προσθέσετε δύο κουμπιά το ένα δίπλα στο άλλο; Ένας τρόπος για να το κάνετε είναι στη συγκεκριμένη θέση να προσθέσετε ένα panel, το οποίο θα περιέχει τα δύο κουμπιά σε κατάλληλη διάταξη. 
 + 
 +Ο παρακάτω κώδικας δίνει ένα παράδειγμα, όπου προστίθεται στο κεντρικό //panel// (διάταξη BorderLayout), ένα 2ο //panel// στη θέση SOUTH, στο οποίο περιέχονται 2 κουμπιά. Το 2ο //panel// έχει την //default// διάταξη [[swing:layout#flowlayout_manager|FlowLayout]].
  
 <code java BorderLayoutPanelDemo.java> <code java BorderLayoutPanelDemo.java>
swing/panels.1522184147.txt.gz · Last modified: 2018/03/27 19:55 (external edit)