User Tools

Site Tools


swing:jframe

This is an old revision of the document!


Η κλάση JFrame

H κλάση JFrame υλοποιεί το βασικό παράθυρο μιας εφαρμογής swing, όπως στο σχήμα. Το παράθυρο που ακολουθεί υλοποιείται από τον παρακάτω κώδικα:

FrameDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class FrameDemo {
 
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        JLabel emptyLabel = new JLabel("");
        emptyLabel.setPreferredSize(new Dimension(200, 130));
        frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
 
        // size window
        frame.pack();
        // show window
        frame.setVisible(true);
    }
 
    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

Παρατηρήσεις

  1. Η εκτέλεση του κώδικα που αφορά το παραθυρικό περιβάλλον swing γίνεται μέσα από την κλήση της στατικής μεθόδου SwingUtilities.invokeLaber, η οποία εκτελεί τον παραθυρικό κώδικα σε ένα νέο νήμα το event dispatch thread (νήμα αποστολής συμβάντων).
  2. H κλάση JFrame παράγει ένα αντικείμενο που αντιστοιχεί στο παράθυρο.

Βασικές μέθοδοι της κλάσης 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: Τερματίζει το τρέχον παράθυρο και συνολικά την εφαμοργή (αν υπάρχουν και άλλα παράθυρα τερματίζουν και αυτά).

Η μέθοδος w.setVisible(true), ορίζει ότι το παράθυρο θα είναι ορατό. Αν ορίσετε w.setVisible(false), τότε το παράθυρο δεν εμφανίζεται και το πρόγραμμα τερματίζεται μόλις αρχίσει η εκτέλεση του.

swing/jframe.1521642887.txt.gz · Last modified: 2018/03/21 14:34 (external edit)