This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
swing:panels [2017/04/03 15:18] gthanos [JFrame Content Pane] |
swing:panels [2018/04/13 08:44] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Panels ====== | ||
| - | |||
| - | Σε πραγματικές εφαρμογές θέλουμε να φτιάξουμε σύνθετα παράθυρα που έχουν πολλά διαφορετικά κουμπιά σε διαφορετικές περιοχές. Κάτι τέτοιο δεν μπορούμε να το κάνουμε μόνο με τα layouts που είδαμε προηγούμενα. | ||
| - | |||
| - | Ένας τρόπος για να φτιάξετε πολύπλοκα layouts είναι να χρησιμοποιήσετε Panels. Κάθε panel ανήκει στην κλάση [[http:// | ||
| - | |||
| - | <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:// | ||
| - | |||
| - | |||
| - | |||