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:start [2015/05/02 12:29] gthanos [Border Layout Manager] |
swing:start [2015/05/02 13:27] gthanos [FlowLayout Manager] |
||
---|---|---|---|
Line 16: | Line 16: | ||
===== Border Layout Manager ===== | ===== Border Layout Manager ===== | ||
- | Η διάταξη ενός παραθύρου με [[http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html|BorderLayout] manager φαίνεται στο παρακάτω σχήμα. | + | Η διάταξη ενός παραθύρου με [[http://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html|BorderLayout]] manager φαίνεται στο παρακάτω σχήμα. |
- | {{ :swing:swing-borderlayout.png?450 | }} | + | {{ :swing:swing-borderlayout.png?350 | }} |
- | Όπως φαίνεται και από το σχήμα ο BorderLayout manager έχει 5 περιοχές **NORTH**, **SOUTH**, **WEST**, **CENTER**, **EAST**. Δείτε το παρακάτω πρόγραμμα το οποίο χρησιμοποιεί ένα παράθυρο με 5 κουμπιά. | + | Όπως φαίνεται και από το σχήμα ο BorderLayout manager έχει 5 περιοχές **NORTH**, **SOUTH**, **WEST**, **CENTER**, **EAST**. Δείτε το παρακάτω πρόγραμμα το οποίο χρησιμοποιεί ένα παράθυρο με 5 κουμπιά, ένα για κάθε περιοχή που ορίζει ο BorderLayoutManager. |
- | ===== Flow Layout Manager ===== | + | <code java BorderLayoutDemo.java> |
+ | import javax.swing.*; | ||
+ | import java.awt.event.ActionListener; | ||
+ | import java.awt.event.ActionEvent; | ||
+ | import java.awt.*; | ||
+ | |||
+ | public class BorderLayoutDemo extends JFrame { | ||
+ | public BorderLayoutDemo () { | ||
+ | super(); | ||
+ | setSize(400, 150); | ||
+ | setTitle("BorderLayout Demo"); | ||
+ | setLayout(new BorderLayout()); | ||
+ | setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | ||
+ | |||
+ | ButtonListener listener = new ButtonListener(); | ||
+ | JButton northButton = new JButton("North Button"); | ||
+ | northButton.addActionListener( listener ); | ||
+ | add(northButton, BorderLayout.NORTH); | ||
+ | |||
+ | JButton southButton = new JButton("South Button"); | ||
+ | southButton.addActionListener( listener ); | ||
+ | add(southButton, BorderLayout.SOUTH); | ||
+ | |||
+ | JButton westButton = new JButton("West Button"); | ||
+ | westButton.addActionListener( listener ); | ||
+ | add(westButton, BorderLayout.WEST); | ||
+ | |||
+ | JButton eastButton = new JButton("East Button"); | ||
+ | eastButton.addActionListener( listener ); | ||
+ | add(eastButton, BorderLayout.EAST); | ||
+ | |||
+ | JButton centerButton = new JButton("Center Button"); | ||
+ | centerButton.addActionListener( listener ); | ||
+ | add(centerButton, BorderLayout.CENTER); | ||
+ | } | ||
+ | |||
+ | public class ButtonListener implements ActionListener { | ||
+ | public void actionPerformed(ActionEvent e) { | ||
+ | System.out.println(e); | ||
+ | System.exit(1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | BorderLayoutDemo w = new BorderLayoutDemo(); | ||
+ | w.setVisible(true); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Τι θα γίνει αν αλλάξετε την περιοχή στην οποία θα τοποθετηθούν όλα τα buttons, ώστε να είναι η περιοχή //BorderLayout.CENTER//; Παρακάτω δίνεται το παράθυρο που δημιουργείται από το πρόγραμμα. | ||
+ | |||
+ | {{ :swing:borderlayoutdemo.png?400 |}} | ||
+ | |||
+ | ===== FlowLayout Manager ===== | ||
+ | |||
+ | Όπως προαναφέραμε ο //FlowLayout Manager// εμφανίζει τα στοιχεία με τη σειρά που προστίθενται σε μία σειρά από αριστερά προς τα δεξιά. Αν το μέγεθος του παραθύρου δεν επαρκεί η τοποθέτηση των στοιχείων συνεχίζει και στην επόμενη σειρά. Δείτε το παραπάνω παράδειγμα κώδικα παραλλαγμένο ώστε να χρησιμοποιεί //FlowLayout Manager//. | ||
+ | |||
+ | <code java FlowLayoutDemo.java> | ||
+ | import javax.swing.*; | ||
+ | import java.awt.event.ActionListener; | ||
+ | import java.awt.event.ActionEvent; | ||
+ | import java.awt.*; | ||
+ | |||
+ | public class FlowLayoutDemo extends JFrame { | ||
+ | public FlowLayoutDemo () { | ||
+ | super(); | ||
+ | setSize(300, 150); | ||
+ | setTitle("FlowLayout Demo"); | ||
+ | |||
+ | /* Select FlowLayout.LEFT for left alignment. | ||
+ | * Select FlowLayout.RIGHT for right alignment. | ||
+ | * Select FlowLayout.CENTER for center alignment (this is the default). | ||
+ | */ | ||
+ | setLayout(new FlowLayout(FlowLayout.LEFT)); | ||
+ | setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | ||
+ | |||
+ | ButtonListener listener = new ButtonListener(); | ||
+ | JButton northButton = new JButton("North Button"); | ||
+ | northButton.addActionListener( listener ); | ||
+ | add(northButton); | ||
+ | |||
+ | JButton southButton = new JButton("South Button"); | ||
+ | southButton.addActionListener( listener ); | ||
+ | add(southButton); | ||
+ | |||
+ | JButton westButton = new JButton("West Button"); | ||
+ | westButton.addActionListener( listener ); | ||
+ | add(westButton); | ||
+ | |||
+ | JButton eastButton = new JButton("East Button"); | ||
+ | eastButton.addActionListener( listener ); | ||
+ | add(eastButton); | ||
+ | |||
+ | JButton centerButton = new JButton("Center Button"); | ||
+ | centerButton.addActionListener( listener ); | ||
+ | add(centerButton); | ||
+ | } | ||
+ | |||
+ | public class ButtonListener implements ActionListener { | ||
+ | public void actionPerformed(ActionEvent e) { | ||
+ | System.out.println(e); | ||
+ | System.exit(1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | FlowLayoutDemo w = new FlowLayoutDemo(); | ||
+ | w.setVisible(true); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Το παράθυρο που προκύπτει δίνεται παρακάτω. Δοκιμάστε να αλλάξετε την στοίχιση σε δεξιά ή κεντρική μεταβάλλοντας την γραμμή ''setLayout(new FlowLayout(FlowLayout.LEFT));'' σε | ||
+ | *''setLayout(new FlowLayout(FlowLayout.RIGHT));'' ή | ||
+ | *''setLayout(new FlowLayout(FlowLayout.CENTER));'' | ||
+ | |||
+ | {{ :swing:flowlayoutdemo.png |}} | ||
===== Grid Layout Manager ===== | ===== Grid Layout Manager ===== |