This shows you the differences between two versions of the page.
| Next revision | Previous revision Next revision Both sides next revision | ||
|
swing:panels [2015/05/03 20:49] gthanos created |
swing:panels [2017/04/03 15:18] gthanos [JFrame Content Pane] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Panels ====== | ====== Panels ====== | ||
| - | Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαγορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα layouts που είδαμε προηγούμενα. Ένας τρόπος για να φτιάξετε πολύπλοκα layouts είναι να χρησιμοποιήσετε Panels. Κάθε panel ανήκει στην κλάση JPanel | + | Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα layouts που είδαμε προηγούμενα. |
| + | |||
| + | Ένας τρόπος για να φτιάξετε πολύπλοκα layouts είναι να χρησιμοποιήσετε Panels. Κάθε 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, | ||
| + | setTitle(" | ||
| + | setLayout(new BorderLayout()); | ||
| + | setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | ||
| + | |||
| + | ButtonListener listener = new ButtonListener(); | ||
| + | |||
| + | okCancelPanel(this); | ||
| + | |||
| + | JButton centerButton = new JButton(" | ||
| + | centerButton.addActionListener( listener ); | ||
| + | add(centerButton, | ||
| + | } | ||
| + | |||
| + | private void okCancelPanel(Container container) { | ||
| + | JPanel southPanel = new JPanel(); | ||
| + | southPanel.setLayout(new FlowLayout()); | ||
| + | container.add(southPanel, | ||
| + | |||
| + | JButton cancelButton = new JButton(" | ||
| + | southPanel.add(cancelButton); | ||
| + | |||
| + | JButton okButton = new JButton(" | ||
| + | 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); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== JFrame Content Pane ===== | ||
| + | |||
| + | Όπως προαναφέραμε η κλάση //JFrame// δημιουργεί το εξωτερικό παράθυρο με τα τρία κουμπιά (συνήθως πάνω δεξιά - εξαρτάται από το λειτουργικό σύστημα). Το JFrame περιέχει και αυτό ένα Panel ή κάποιο αντικείμενο τύπου [[http:// | ||
| + | |||
| + | |||