swing:first_program
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| swing:first_program [2018/03/21 14:21] – [Βασικές μέθοδοι της κλάσης JFrame] gthanos | swing:first_program [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Παρακάτω φτιάχνουμε ένα πρώτο απλό παραθυρικό πρόγραμμα το οποίο έχει μόνο ένα κουμπί που τερματίζει την εφαρμογή. Κατεβάστε και τρέξτε τα επόμενα δύο αρχεία. | Παρακάτω φτιάχνουμε ένα πρώτο απλό παραθυρικό πρόγραμμα το οποίο έχει μόνο ένα κουμπί που τερματίζει την εφαρμογή. Κατεβάστε και τρέξτε τα επόμενα δύο αρχεία. | ||
| - | <code java FirstWindow.java> | + | <code java FirstSwingDemo.java> |
| import javax.swing.JFrame; | import javax.swing.JFrame; | ||
| import javax.swing.JButton; | import javax.swing.JButton; | ||
| + | import java.awt.event.*; | ||
| - | public class FirstWindow | + | public class FirstSwingDemo |
| public static final int WIDTH = 300; | public static final int WIDTH = 300; | ||
| public static final int HEIGHT = 200; | public static final int HEIGHT = 200; | ||
| Line 17: | Line 18: | ||
| firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | ||
| JButton endButton = new JButton(" | JButton endButton = new JButton(" | ||
| - | | + | |
| + | ActionListener | ||
| + | public void actionPerformed(ActionEvent e) { | ||
| + | System.exit(0); | ||
| + | } | ||
| + | }; | ||
| + | | ||
| endButton.addActionListener(buttonEar); | endButton.addActionListener(buttonEar); | ||
| firstWindow.add(endButton); | firstWindow.add(endButton); | ||
| + | firstWindow.pack(); | ||
| firstWindow.setVisible(true); | firstWindow.setVisible(true); | ||
| } | } | ||
| Line 29: | Line 37: | ||
| } | } | ||
| }); | }); | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | <code java EndingListener.java> | ||
| - | import java.awt.event.*; | ||
| - | |||
| - | public class EndingListener implements ActionListener { | ||
| - | public void actionPerformed(ActionEvent e) { | ||
| - | System.exit(0); | ||
| } | } | ||
| } | } | ||
| Line 54: | Line 52: | ||
| Από την εμπειρία σας γνωρίζετε ότι όταν πατήσετε το κουμπί για το κλείσιμο του παραθύρου τότε το παράθυρο κλείνει και η εφαρμογή τερματίζεται. Η παρακάτω γραμμή διαχειρίζεται διαφορετικά ένα click event στο κουμπί κλεισίματος του παραθύρου, | Από την εμπειρία σας γνωρίζετε ότι όταν πατήσετε το κουμπί για το κλείσιμο του παραθύρου τότε το παράθυρο κλείνει και η εφαρμογή τερματίζεται. Η παρακάτω γραμμή διαχειρίζεται διαφορετικά ένα click event στο κουμπί κλεισίματος του παραθύρου, | ||
| <code java> | <code java> | ||
| - | firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | + | |
| </ | </ | ||
| Στην συνέχεια ορίζουμε ένα αντικείμενο τύπου JButton (κουμπί) με τίτλο "Click to end program." | Στην συνέχεια ορίζουμε ένα αντικείμενο τύπου JButton (κουμπί) με τίτλο "Click to end program." | ||
| <code java> | <code java> | ||
| - | JButton endButton = new JButton(" | ||
| - | EndingListener buttonEar = new EndingListener(); | ||
| - | endButton.addActionListener(buttonEar); | ||
| - | </ | ||
| - | |||
| - | Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό. | ||
| - | <code java> | ||
| - | firstWindow.add(endButton); | ||
| - | firstWindow.setVisible(true); | ||
| - | </ | ||
| - | |||
| - | ===== Χρήση μίας ανώνυμης κλάσης ActionListener σε αντικατάσταση της κλάσης EndingListener ===== | ||
| - | |||
| - | Για να μην έχουμε πολλαπλά αρχεία, | ||
| - | |||
| - | <code java FirstSwingDemo2.java> | ||
| - | import javax.swing.JFrame; | ||
| - | import javax.swing.JButton; | ||
| - | import java.awt.event.*; | ||
| - | |||
| - | public class FirstSwingDemo2 { | ||
| - | public static final int WIDTH = 300; | ||
| - | public static final int HEIGHT = 200; | ||
| - | | ||
| - | public static void showGUI() { | ||
| - | JFrame firstWindow = new JFrame(); | ||
| - | firstWindow.setSize(WIDTH, | ||
| - | firstWindow.setTitle(" | ||
| - | firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | ||
| JButton endButton = new JButton(" | JButton endButton = new JButton(" | ||
| - | | ||
| ActionListener buttonEar = new ActionListener() { | ActionListener buttonEar = new ActionListener() { | ||
| public void actionPerformed(ActionEvent e) { | public void actionPerformed(ActionEvent e) { | ||
| System.exit(0); | System.exit(0); | ||
| } | } | ||
| - | }; | + | }; |
| - | + | ||
| endButton.addActionListener(buttonEar); | endButton.addActionListener(buttonEar); | ||
| + | </ | ||
| + | |||
| + | Προσθέτουμε το κουμπί στο παράθυρο και ορίζουμε ότι το παράθυρο που φτιάξαμε θέλουμε να είναι ορατό. | ||
| + | <code java> | ||
| firstWindow.add(endButton); | firstWindow.add(endButton); | ||
| + | firstWindow.pack(); | ||
| firstWindow.setVisible(true); | firstWindow.setVisible(true); | ||
| - | } | ||
| - | | ||
| - | public static void main(String[] args) { | ||
| - | javax.swing.SwingUtilities.invokeLater(new Runnable() { | ||
| - | public void run() { | ||
| - | showGUI(); | ||
| - | } | ||
| - | }); | ||
| - | } | ||
| - | } | ||
| </ | </ | ||
| - | ===== Παραλλαγή - Το παραπάνω παράθυρο ως αυτόνομη κλάση ===== | + | Το πρόγραμμα εκκινεί μέσω της στατικής μεθόδου |
| - | + | <code java> | |
| - | Αν θέλατε | + | |
| - | + | ||
| - | < | + | |
| - | import javax.swing.JFrame; | + | |
| - | import javax.swing.JButton; | + | |
| - | import java.awt.event.*; | + | |
| - | + | ||
| - | public class FirstWindow extends JFrame { | + | |
| - | public static final int WIDTH = 300; | + | |
| - | public static final int HEIGHT = 200; | + | |
| - | + | ||
| - | public static void showGUI() { | + | |
| - | JFrame firstWindow = new JFrame(); | + | |
| - | firstWindow.setSize(WIDTH, | + | |
| - | firstWindow.setTitle(" | + | |
| - | firstWindow.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); | + | |
| - | JButton endButton = new JButton(" | + | |
| - | ActionListener buttonEar = new ActionListener() { | + | |
| - | public void actionPerformed(ActionEvent e) { | + | |
| - | System.exit(0); | + | |
| - | } | + | |
| - | }; | + | |
| - | endButton.addActionListener(buttonEar); | + | |
| - | firstWindow.add(endButton); | + | |
| - | firstWindow.setVisible(true); | + | |
| - | } | + | |
| - | | + | |
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| javax.swing.SwingUtilities.invokeLater(new Runnable() { | javax.swing.SwingUtilities.invokeLater(new Runnable() { | ||
| Line 147: | Line 82: | ||
| }); | }); | ||
| } | } | ||
| - | } | ||
| </ | </ | ||
| + | |||
| + | | Προηγούμενο: | ||
swing/first_program.1521642072.txt.gz · Last modified: 2018/03/21 14:21 by gthanos
