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