swing:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
swing:start [2015/05/02 11:58]
gthanos [Border Layout Manager]
swing:start [2015/05/02 12:49]
gthanos [Border Layout Manager]
Line 9: Line 9:
   * **Box Layout Manager**: προσθέτει τα στοιχεία σε μία γραμμή ή σε μία στήλη.   * **Box Layout Manager**: προσθέτει τα στοιχεία σε μία γραμμή ή σε μία στήλη.
   * **Group Layout Manager:** χρησιμοποιείται από GUIs όπως NetBeans και Eclipse και δεν θα μας απασχολήσει.   * **Group Layout Manager:** χρησιμοποιείται από GUIs όπως NetBeans και Eclipse και δεν θα μας απασχολήσει.
 +
 +<WRAP important 80% center round>
 +Κάθε //layout manager// χωρίζει το παράθυρο σε περιοχές. Αυτό που θα πρέπει να προσέξετε είναι ότι μπορείτε να προσθέσετε μόνο ένα component σε κάθε περιοχή. Αν προσπαθήσετε να προσθέσετε περισσότερα του ενός, αυτό που θα γίνει είναι ότι θα αποθηκευθεί το τελευταίο που προσθέσατε. Σε επόμενη ενότητα θα δούμε πως μπορείτε να αποθηκεύετε περισσότερα του ενός components σε μία περιοχή με την χρήση των panels (JPanel).
 +</​WRAP>​
  
 ===== Border Layout Manager ===== ===== Border Layout Manager =====
  
-Η διάταξη ενός παραθύρου με BorderLayout manager φαίνεται στο παρακάτω σχήμα.+Η διάταξη ενός παραθύρου με [[http://​docs.oracle.com/​javase/​7/​docs/​api/​java/​awt/​BorderLayout.html|BorderLayout] ​manager φαίνεται στο παρακάτω σχήμα.  
 + 
 +{{ :​swing:​swing-borderlayout.png?​450 | }} 
 + 
 +Όπως φαίνεται και από το σχήμα ο BorderLayout manager έχει 5 περιοχές **NORTH**, **SOUTH**, **WEST**, **CENTER**, **EAST**. Δείτε το παρακάτω πρόγραμμα το οποίο χρησιμοποιεί ένα παράθυρο με 5 κουμπιά,​ ένα για κάθε περιοχή που ορίζει ο BorderLayoutManager. 
 + 
 +<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:swing-borderlayout.png | 500}}+{{ :swing:borderlayoutdemo.png?400 |}}
  
 ===== Flow Layout Manager ===== ===== Flow Layout Manager =====
swing/start.txt · Last modified: 2016/02/26 11:15 (external edit)