Το πρώτο μου πρόγραμμα

Παρακάτω φτιάχνουμε ένα πρώτο απλό παραθυρικό πρόγραμμα το οποίο έχει μόνο ένα κουμπί που τερματίζει την εφαρμογή. Κατεβάστε και τρέξτε τα επόμενα δύο αρχεία.

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();
      } 
    });
  }
}

Ας εξετάσουμε όμως τι κάνει το πρόγραμμα μας. Αρχικά δημιουργούμε ένα αντικείμενο του τύπου JFrame μέσα από την κλήση.

    JFrame firstWindow = new JFrame();

Το αντικείμενο αυτό είναι ένα απλό παράθυρο με τρία κουμπιά (minimize, resize, close). Στη συνέχεια ορίζουμε το μέγεθος του παραθύρου (σε pixels) και τον τίτλο του.

    firstWindow.setSize(WIDTH, HEIGHT);
    firstWindow.setTitle("First Window Program!");

Από την εμπειρία σας γνωρίζετε ότι όταν πατήσετε το κουμπί για το κλείσιμο του παραθύρου τότε το παράθυρο κλείνει και η εφαρμογή τερματίζεται. Η παρακάτω γραμμή διαχειρίζεται διαφορετικά ένα click event στο κουμπί κλεισίματος του παραθύρου, όπου όταν πατήσετε το κουμπί κλεισίματος αντί το παράθυρο να κλείσει δεν κάνει τίποτα.

    firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

Στην συνέχεια ορίζουμε ένα αντικείμενο τύπου JButton (κουμπί) με τίτλο “Click to end program.” και δημιουργούμε και έναν Listener τον οποίο συνδέουμε με το συγκεκριμένο κουμπί.

    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);

Το πρόγραμμα εκκινεί μέσω της στατικής μεθόδου main όπως παρακάτω. Ο παρακάτω κώδικας θα εξηγηθεί σε επόμενη ενότητα.

  public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        showGUI();
      } 
    });
  }