This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
swing:jframe [2018/03/21 16:07] gthanos [Βασικές μέθοδοι της κλάσης JFrame] |
swing:jframe [2021/04/13 05:33] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Η κλάση JFrame ====== | ||
| - | |||
| - | H κλάση JFrame υλοποιεί το βασικό παράθυρο μιας εφαρμογής swing, όπως στο σχήμα. Το παράθυρο που ακολουθεί υλοποιείται από τον παρακάτω κώδικα: | ||
| - | |||
| - | <code java 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(" | ||
| - | frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
| - | |||
| - | JLabel emptyLabel = new JLabel("" | ||
| - | emptyLabel.setPreferredSize(new Dimension(200, | ||
| - | frame.getContentPane().add(emptyLabel, | ||
| - | |||
| - | // set window size | ||
| - | 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' | ||
| - | javax.swing.SwingUtilities.invokeLater(new Runnable() { | ||
| - | public void run() { | ||
| - | createAndShowGUI(); | ||
| - | } | ||
| - | }); | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | === Παρατηρήσεις πάνω στον κώδικα === | ||
| - | |||
| - | - Η εκτέλεση του κώδικα που αφορά το παραθυρικό περιβάλλον //swing// γίνεται μέσα από την κλήση της στατικής μεθόδου [[https:// | ||
| - | - H κλάση JFrame παράγει ένα αντικείμενο που αντιστοιχεί στο παράθυρο. Η παράμετρος τύπου String στον κατασκευαστή αντιστοιχεί στον τίτλο που θα φέρει το παράθυρο. | ||
| - | - Η μέθοδος [[https:// | ||
| - | * JFrame.**DO_NOTHING_ON_CLOSE**: | ||
| - | * JFrame.**HIDE_ON_CLOSE**: | ||
| - | * JFrame.**DISPOSE_ON_CLOSE**: | ||
| - | * JFrame.**EXIT_ON_CLOSE**: | ||
| - | - Η μέθοδος JFrame.pack υπολογίζει το μέγεθος του παραθύρου. | ||
| - | - Η μέθοδος JFrame.setVisible(boolean value) κάνει το παράθυρο ορατό προς τον τελικό χρήστη. | ||
| - | |||
| - | <WRAP tip 80% center round> | ||
| - | Η μέθοδος **w.setVisible(true)**, | ||
| - | </ | ||
| - | |||
| - | ===== Δομικά στοιχεία ενός JFrame ===== | ||
| - | |||
| - | Από τι αποτελείται όμως ένα αντικείμενο της κλάσης JFrame; Στην πραγματικότητα ένα JFrame είναι ένα αντικείμενο που χρησιμοποιεί τα hooks του λειτουργικού συστήματος και του window manager για να δημιουργήσει ένα παράθυρο. Ένα JFrame περιέχει ένα αντικείμενο της κλάσης [[https:// | ||
| - | - ένα αντικείμενο της κλάσης [[https:// | ||
| - | - ένα //content pane// (συνήθως είναι αντικείμενο της κλάσης [[https:// | ||
| - | - ένα [[https:// | ||
| - | - ένα // | ||
| - | |||
| - | Το παρακάτω σχήμα από το [[https:// | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ===== Βασικές μέθοδοι της κλάσης JFrame ===== | ||
| - | |||
| - | Η κλάση **JFrame** έχει τους εξής κατασκευαστές: | ||
| - | * **public JFrame()**: default κατασκευαστής του παραθύρου. | ||
| - | * **public JFrame(String title)**: Κατασκευαστής του παραθύρου στον οποίο ορίζεται και ο τίτλος. | ||
| - | και τις παρακάτω μεθόδους **α)** σχετικά με το μέγεθος του παραθύρου: | ||
| - | * **public void setSize(int width, int height)**: Ορισμός του μεγέθους του παραθύρου σε pixels. | ||
| - | * **void setSize(int width, int height):** Ορισμός του μεγέθους του παραθύρου σε pixels. | ||
| - | * **void setBound(int x, int y, int width, int height):** Ορίζει τη θέση του παραθύρου στην οθόνη και το μέγεθος του παραθύρου κατά τη δημιουργία του. | ||
| - | **β)** Σχετικά με το περιεχόμενο του παραθύρου: | ||
| - | * **void setContentPane(Container): | ||
| - | * **Container getContentPane(): | ||
| - | * **public void add(Component componentToAdd)**: | ||
| - | * **public void setLayout(LayoutManager manager)**: Ορίζει το layout για το παράθυρο. Θα δούμε πιο κάτω τι είναι το layout και θα δούμε επίσης τα πιο ενδιαφέροντα layouts. | ||
| - | * **public void setMenuBar(JMenuBar menubar)**: Ορίζει το αντικείμενο της μπάρας για το μενού στο παράθυρο. | ||
| - | * **public void setDefaultCloseOPeration(int operation)**: | ||
| - | |||