swing:intro

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
swing:intro [2015/05/01 03:10]
gthanos [Το πρώτο μου πρόγραμμα]
swing:intro [2016/04/23 05:04] (current)
gthanos [Το παραπάνω παράθυτο ως αυτόνομη κλάση]
Line 57: Line 57:
 </​code>​ </​code>​
  
-Ας εξετάσουμε όμως τι κάνει το πρόγραμμα μας. ​+Ας εξετάσουμε όμως τι κάνει το πρόγραμμα μας. ​Αρχικά δημιουργούμε ένα αντικείμενο του τύπου //JFrame// μέσα από την κλήση. 
 +<code java> 
 +    JFrame firstWindow = new JFrame(); 
 +</​code>​ 
 +Το αντικείμενο αυτό είναι ένα απλό παράθυρο με τρία κουμπιά (minimize, resize, close). Στη συνέχεια ορίζουμε το μέγεθος του παραθύρου (σε pixels) και τον τίτλο του.  
 +<code java> 
 +    firstWindow.setSize(WIDTH,​ HEIGHT); 
 +    firstWindow.setTitle("​First Window Program!"​);​ 
 +</​code>​ 
 +Από την εμπειρία σας γνωρίζετε ότι όταν πατήσετε το κουμπί για το κλείσιμο του παραθύρου τότε το παράθυρο κλείνει και η εφαρμογή τερματίζεται. Η παρακάτω γραμμή διαχειρίζεται διαφορετικά ένα click event στο κουμπί κλεισίματος του παραθύρου,​ όπου όταν πατήσετε το κουμπί κλεισίματος αντί το παράθυρο να κλείσει δεν κάνει τίποτα. 
 +<code java> 
 +firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);​ 
 +</​code>​
  
 +Στην συνέχεια ορίζουμε ένα αντικείμενο τύπου JButton (κουμπί) με τίτλο "Click to end program."​ και δημιουργούμε και έναν Listener τον οποίο συνδέουμε με το συγκεκριμένο κουμπί. ​
 +<code java>
 +JButton endButton = new JButton("​Click to end program."​);​
 +EndingListener buttonEar = new EndingListener();​
 +endButton.addActionListener(buttonEar);​
 +</​code>​
 +
 +Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό.
 +<code java>
 +firstWindow.add(endButton);​
 +firstWindow.setVisible(true);​
 +</​code>​
 ==== Χρήση μίας ανώνυμης κλάσης ActionListener ==== ==== Χρήση μίας ανώνυμης κλάσης ActionListener ====
  
Line 78: Line 102:
     firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);​     firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);​
     JButton endButton = new JButton("​Click to end program."​);​     JButton endButton = new JButton("​Click to end program."​);​
 +    ​
     ActionListener buttonEar = new ActionListener() {     ActionListener buttonEar = new ActionListener() {
       public void actionPerformed(ActionEvent e) {       public void actionPerformed(ActionEvent e) {
Line 83: Line 108:
       }       }
     };     };
 +    ​
     endButton.addActionListener(buttonEar);​     endButton.addActionListener(buttonEar);​
     firstWindow.add(endButton);​     firstWindow.add(endButton);​
Line 90: Line 116:
 </​code>​ </​code>​
  
-Αν τώρα θέλατε να δημιουργήσετε μία κλάση που να υλοποιεί το συγκεκριμένο παράθυρο,​ θα μπορούσατε να το κάνετε ως εξής:+==== Το παραπάνω παράθυρο ως αυτόνομη κλάση ==== 
 + 
 +Αν θέλατε να δημιουργήσετε μία κλάση που να υλοποιεί το συγκεκριμένο παράθυρο,​ θα μπορούσατε να το κάνετε ως εξής:
  
 <code java FirstWindow.java>​ <code java FirstWindow.java>​
Line 123: Line 151:
 </​code>​ </​code>​
  
 +==== Βασικές μέθοδοι της κλάσης JFrame ====
 +
 +Οι βασικές μέθοδοι της κλάσης JFrame είναι οι παρακάτω:​
 +  * ''​public JFrame()'':​ default κατασκευαστής του παραθύρου.
 +  * ''​public JFrame(String title)'':​ Κατασκευαστής του παραθύρου στον οποίο ορίζεται και ο τίτλος.
 +  * ''​public void setTitle(String title)'':​ Ορισμός του τίτλου του παραθύρου.
 +  * ''​public void setSize(int width, int height)'':​ Ορισμός του μεγέθους του παραθύρου σε pixels.
 +  * ''​public void add(Component componentToAdd)'':​ Προσθέτει ένα γραφικό component στο παράθυρο.
 +  * ''​public void setLayout(LayoutManager manager)'':​ Ορίζει το layout για το παράθυρο. Θα δούμε πιο κάτω τι είναι το layout και θα δούμε επίσης τα πιο ενδιαφέροντα layouts.
 +  * ''​public void setMenuBar(JMenuBar menubar)'':​ Ορίζει την μπάρα για το μενού στο παράθυρο.
 +  * ''​public void setDefaultCloseOPeration(int operation)'':​ Ορίζει την διαδικασία που θα τρέξει όταν ο χρήστης πατήσει το κουμπί (επάνω δεξιά) που κλείνει το παράθυρο. Η μεταβλητή ''​operation''​ μπορεί να πάρει μία από τις παρακάτω τιμές:
 +    * JFrame.**DO_NOTHING_ON_CLOSE**:​ Δεν κάνει τίποτα. Αν υπάρχουν ορισμένοι window listeners αυτοί εκτελούνται.
 +    * JFrame.**HIDE_ON_CLOSE**:​ Κρύβει το παράθυρο αφού εκτελέσει πιθανώς ορισμένους window listeners. Το παράθυρο δεν είναι δυνατόν να ανακτηθεί,​ αλλά η εφαρμοργή δεν τερματίζεται. Η παραπάνω τιμή είναι η **default** αν δεν έχει οριστεί κάποια άλλη.
 +    * JFrame.**DISPOSE_ON_CLOSE**:​ Τερματίζει το τρέχον παράθυρο. Αν υπάρχουν και άλλα παράθυρα αυτά παραμένουν,​ ενώ αν δεν υπάρχουν τερματίζει η εφαρμογή.
 +    * JFrame.**EXIT_ON_CLOSE**:​ Τερματίζει το τρέχον παράθυρο και συνολικά την εφαμοργή (αν υπάρχουν και άλλα παράθυρα τερματίζουν και αυτά).
  
 +<WRAP tip 80% center round>
 +Η μέθοδος ''​w.setVisible(true)'',​ ορίζει ότι το παράθυρο θα είναι ορατό. Αν ορίσετε ''​w.setVisible(false)'',​ τότε το παράθυρο δεν εμφανίζεται και το πρόγραμμα τερματίζεται μόλις αρχίσει η εκτέλεση του.
 +</​WRAP>​
  
swing/intro.1430449817.txt.gz · Last modified: 2016/02/26 11:15 (external edit)