User Tools

Site Tools


swing:first_program

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
swing:first_program [2021/04/12 06:19]
swing:first_program [2021/04/12 07:19]
gthanos
Line 1: Line 1:
 +====== Το πρώτο μου πρόγραμμα ======
 +
 +Παρακάτω φτιάχνουμε ένα πρώτο απλό παραθυρικό πρόγραμμα το οποίο έχει μόνο ένα κουμπί που τερματίζει την εφαρμογή. Κατεβάστε και τρέξτε τα επόμενα δύο αρχεία.
 +
 +<code java FirstSwingDemo.java>
 +import javax.swing.JFrame;
 +import javax.swing.JButton;
 +import java.awt.event.*;
 +
 +public class FirstSwingDemo {
 +  public static final int WIDTH = 300;
 +  public static final int HEIGHT = 200;
 +  
 +  public static void showGUI() {
 +    JFrame firstWindow = new JFrame();
 +    firstWindow.setSize(WIDTH, HEIGHT);
 +    firstWindow.setTitle("First Window Program!");
 +    firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 +    JButton endButton = new JButton("Click to end program.");
 +    
 +    ActionListener buttonEar = new ActionListener() {
 +      public void actionPerformed(ActionEvent e) {
 +        System.exit(0);
 +      }
 +    };
 +    
 +    endButton.addActionListener(buttonEar);
 +    firstWindow.add(endButton);
 +    firstWindow.pack();
 +    firstWindow.setVisible(true);
 +  }
 +  
 +  public static void main(String[] args) {
 +    javax.swing.SwingUtilities.invokeLater(new Runnable() {
 +      public void run() {
 +        showGUI();
 +      } 
 +    });
 +  }
 +}
 +</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.");
 +    ActionListener buttonEar = new ActionListener() {
 +      public void actionPerformed(ActionEvent e) {
 +        System.exit(0);
 +      }
 +    };    
 +    endButton.addActionListener(buttonEar);
 +</code>
 +
 +Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό.
 +<code java>
 +    firstWindow.add(endButton);
 +    firstWindow.pack();
 +    firstWindow.setVisible(true);
 +</code>
 +
 +Το πρόγραμμα εκκινεί μέσω της στατικής μεθόδου **main** όπως παρακάτω. Ο παρακάτω κώδικας θα εξηγηθεί σε επόμενη ενότητα.
 +<code java>
 +  public static void main(String[] args) {
 +    javax.swing.SwingUtilities.invokeLater(new Runnable() {
 +      public void run() {
 +        showGUI();
 +      } 
 +    });
 +  }
 +</code>
 +
 +| Προηγούμενο: [[:swing:intro| Δημιουργία γραφικού περιβάλλοντος με swing ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:swing:events | Events & Event Listeners ]] |
 +
  
swing/first_program.txt · Last modified: 2021/04/12 06:19 (external edit)