User Tools

Site Tools


swing:first_program

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

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

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();
      } 
    });
  }
swing/first_program.txt · Last modified: 2021/04/12 06:19 (external edit)