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:22]
gthanos [Το πρώτο μου πρόγραμμα]
swing:intro [2016/04/23 05:04] (current)
gthanos [Το παραπάνω παράθυτο ως αυτόνομη κλάση]
Line 80: Line 80:
 Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό. Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό.
 <code java> <code java>
-    ​firstWindow.add(endButton);​ +firstWindow.add(endButton);​ 
-    firstWindow.setVisible(true);​+firstWindow.setVisible(true);​
 </​code>​ </​code>​
 ==== Χρήση μίας ανώνυμης κλάσης ActionListener ==== ==== Χρήση μίας ανώνυμης κλάσης ActionListener ====
Line 102: 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 107: Line 108:
       }       }
     };     };
 +    ​
     endButton.addActionListener(buttonEar);​     endButton.addActionListener(buttonEar);​
     firstWindow.add(endButton);​     firstWindow.add(endButton);​
Line 114: Line 116:
 </​code>​ </​code>​
  
-Αν τώρα θέλατε να δημιουργήσετε μία κλάση που να υλοποιεί το συγκεκριμένο παράθυρο,​ θα μπορούσατε να το κάνετε ως εξής:+==== Το παραπάνω παράθυρο ως αυτόνομη κλάση ==== 
 + 
 +Αν θέλατε να δημιουργήσετε μία κλάση που να υλοποιεί το συγκεκριμένο παράθυρο,​ θα μπορούσατε να το κάνετε ως εξής:
  
 <code java FirstWindow.java>​ <code java FirstWindow.java>​
Line 147: 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.1430450579.txt.gz · Last modified: 2016/02/26 11:15 (external edit)