Bonjour,
Je suis novice, donc il se peut que je ne sois pas très précis, ne m'en tenez pas trop rigueur svp ^^
Je dois, pour un projet, réaliser une interface graphique. Dans ce projet, je dois, entre autres, assembler différents messages en un seul.
Cela est déjà fait, et marche. Mais maintenant mon interface graphique doit afficher les différents messages (qui sont stockés dans un fichier), et, par un clic sur un bouton, les assembler et afficher le message final.
J'ai donc deux JTextField pour les messages (un pour les multiples messages ("input"), l'autre pour le message assemblé ("screen")), et un bouton.
Mon problème réside dans l'action que fait le bouton : il doit faire appel aux méthodes de la classe Assembler, mais je ne sais pas comment y faire appel.
Je vous mets mon code, tel que j'aimerais que ça marche (donc ça ne marche pas en l'état, mais c'est pour que vous compreniez ce que je veux faire).
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
| public class CommutateurGUI {
JFrame fenetre;
JButton button1;
JTextArea input;
JTextArea screen;
JTextField nom;
Assembleur a;
public CommutateurGUI(File file_input, Assembleur a) {
fenetre = new JFrame("Commutateur");
button1 = new JButton("Assembler");
button1.addActionListener(new ActionButton1(this));
input = new JTextArea();
screen = new JTextArea();
assembleur = a;
Scanner scan;
try {
scan = new Scanner(file_input);
while (scan.hasNextLine()) {
while (scan.hasNextInt()) {
Integer key = scan.nextInt();
input.append(key.toString() + "");
}
input.append("\n");
}
} catch (FileNotFoundException e) {
System.out.println("File "
+ file_input.getAbsolutePath()
+ " could not be found on filesystem");
}
Container contenu = fenetre.getContentPane();
contenu.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.insets = new Insets(10, 15, 10, 15);
contenu.add(button1, gbc);
GridBagConstraints gbcscreen = new GridBagConstraints();
gbcscreen.gridy = 0;
gbcscreen.weighty = 1;
gbcscreen.gridx = 3;
gbcscreen.anchor = GridBagConstraints.LINE_END;
gbcscreen.insets = new Insets(10, 15, 10, 150);
contenu.add(screen, gbcscreen);
GridBagConstraints gbcinput = new GridBagConstraints();
gbcinput.gridy = 0;
gbcinput.weighty = 1;
gbcinput.gridx = 0;
gbcinput.anchor = GridBagConstraints.LINE_START;
gbcinput.insets = new Insets(10, 150, 10, 15);
contenu.add(input, gbcinput);
fenetre.pack();
fenetre.setVisible(true);
}
public static void main(File args, Assembleur a) {
new CommutateurGUI(args,a);
}
}
class ActionButton1 implements ActionListener {
private CommutateurGUI vue;
public ActionButton1(CommutateurGUI c) {
vue = c;
}
public void actionPerformed(ActionEvent button1) {
vue.screen.append("Paquet assemble : ");
file_input.assembler();
//Et la suite... c'est pas le propos ici ^^
}
} |
J'ai mis en gras ce qui ne marche pas et que j'aimerais faire.
Ce que j'aimerais faire, serait que quand le programme principal lance l'interface graphique, il la lance avec comme paramètre Assembler et file_input, comme ça j'affiche file_input dans input, et j'utilise les méthodes de Assembler sur input.
J'espère que vous avez compris ce que je voulais faire, merci de votre aide !
Partager