Mal compris ? (frame/dialog)
Bonjour,
en phase d'apprentisage de JAVA
je teste un tout petit code java, mais je crois que j'ai mal compris le fonctionnement de frame et dialog
je n'arrive pas à m'en sortir.
L'idée est simple :
-->interface YES/NO
---> YES ---> quitter
---> No ---> dialogbox ---> indique juste qu'on a appuyer sur no et retour
voilà ce que j'ai fait :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
/*
* imports des éléments java
*/
public class testframedialog {
public class testframedialog extends Frame {
/*
* juste pour tester mais semble necessaire d'appliquer un numéro de
* version
*/
private static final long serialVersionUID = 1L;
testframedialg() {
super("AWT");
Label msgLabel = new Label("Quit?");
Button yesButton = new Button("Yes");
Button noButton = new Button("No");
Panel buttonbox = new Panel();
buttonbox.setLayout(new FlowLayout());
buttonbox.add(yesButton);
buttonbox.add(noButton);
/*
* pannel des boutons YES/NO
*/
final Panel msgbox = new Panel();
msgbox.setLayout(new FlowLayout());
msgbox.add(msgLabel);
/*
* affiche le "quit ?"
*/
add(msgbox, BorderLayout.NORTH);
add(buttonbox, BorderLayout.SOUTH);
/*
* gerer la disposition des labels
*/
yesButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
/*
* juste pour quitter proprement avec un exit 0
*/
}
});
noButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Dialog frame = null;
final JDialog dialog = new JDialog(frame,"test");
JLabel label = new JLabel("<html><p align=center>TEST<br>");
label.setHorizontalAlignment(JLabel.CENTER);
JButton closeButton = new JButton("Close");
closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
/*
* libere la dialog-box
*/
}
});
/*
* ajoute une deuxieme boite de dialog pour retour
*/
dialog.setSize(new Dimension(300, 150));
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
}
});
/*
* faire agir le bouton "no"
*/
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
/*
* juste pour gerer la cloture de la fenetre par la croix de
* l'interface graphique utilisateur
*/
}
}
}
/*
* corp de programme commence ici construit et affice la frame ci dessus
*/
public void main(String[] args) {
testframedialog frame = new testframedialog();
frame.pack();
frame.setVisible(true);
} |
et la compilation javac :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
test_frame$ javac testframedialog.java
testframedialog.java:32: invalid method declaration; return type required
testframedialg() {
^
testframedialog.java:99: illegal start of type
});
^
testframedialog.java:109: class, interface, or enum expected
public void main(String[] args) {
^
testframedialog.java:111: class, interface, or enum expected
frame.pack();
^
testframedialog.java:112: class, interface, or enum expected
frame.setVisible(true);
^
testframedialog.java:113: class, interface, or enum expected
}
^
6 errors |
dans un premier j'ai pensé à une erreur d'indentation (par fermeture confondue entre un "}" et un "});" par exemple
Mais visiblement cela n'a rien à voir...
Merci pour votre aide, je n'ai pas trouvé mon bonheur sur les tutos...:roll:
Pour info :
je suis sous linux avec eclipse et les jdk sun