Je bloque!!

Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005 - 9 juil. 2004 à 11:12
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005 - 9 juil. 2004 à 15:03
Bonjour à tous,

Je suis en train d'apprendre le Java, et cherche à faire un programme contenant plusieurs layouts. Dans le GridLayout, je souhaite faire en sorte qu'à chaque fois que l'on clique sur un bouton, un messageDialog apparaisse, affichant le texte dudit bouton.
Ca fait deux jours que je cherche en van l'erreur, donc merci de m'aider. Voici mon code...

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestLayout extends JFrame implements MouseListener {
public TestLayout(String titre) {
super(titre);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
}

private void init() {
ImageIcon icon = null;
JTabbedPane tabbedPane = new JTabbedPane();
Component panel = makePanelWithBorderLayout();

tabbedPane.addTab("<html> BorderLayout </html>", icon, panel, "Info-bulle");
tabbedPane.setSelectedIndex(0);

panel = makePanelWithGridLayout();
tabbedPane.addTab("GridLayout", icon, panel, "avec des JButton");

panel = makePanelWithFlowLayout();
tabbedPane.addTab("FlowLayout", icon, panel, "une info-bulle");

panel = makePanelWithNoLayout();
tabbedPane.insertTab("Aucun Layout (null)", icon, panel, "Avec JLabel et JButton", 1);

getContentPane().setLayout(new GridLayout(1,1));
getContentPane().add(tabbedPane);
//tabbedPane.
}//init();

private JPanel makePanelWithBorderLayout() {
JPanel panelBorderLayout = new JPanel(false);
panelBorderLayout.setLayout(new BorderLayout());
panelBorderLayout.add("North", new JButton("North"));
panelBorderLayout.add("South", new JButton("South"));
panelBorderLayout.add("East", new JButton("East"));
panelBorderLayout.add("West", new JButton("West"));
panelBorderLayout.add("Center", new JButton("Center"));
return panelBorderLayout;
}

private JPanel makePanelWithFlowLayout() {
JPanel panelFlowLayout = new JPanel(false);
panelFlowLayout.setLayout(new FlowLayout());
for(int i = 0; i < 10; ++i) {
panelFlowLayout.add(new JButton(String.valueOf(i)));
}
return panelFlowLayout;
}

private JPanel makePanelWithGridLayout() {
JPanel panelGridLayout = new JPanel(false);
panelGridLayout.setLayout(new GridLayout(4,8));
for(char c = 65; c < 91; ++c) {
panelGridLayout.add(new JButton(String.valueOf(c)));

}
panelGridLayout.addMouseListener(this);
return panelGridLayout;
}

private JPanel makePanelWithNoLayout() {
JPanel panelNoLayout = new JPanel(false);
panelNoLayout.setLayout(null);
JLabel label1 = new JLabel("Label en position(10, 10)");
JLabel label2 = new JLabel("Label en position(70, 70)");
JButton button1 = new JButton("Bouton en position(130, 130)");
JButton button2 = new JButton("Bouton en position(190, 190)");
label1.setBounds(10, 10, 200, 30);
label2.setBounds(70, 70, 200, 30);
button1.setBounds(130, 130, 250, 30);
button2.setBounds(190, 190, 250, 60);
panelNoLayout.add(label1);
panelNoLayout.add(label2);
panelNoLayout.add(button1);
panelNoLayout.add(button2);

return panelNoLayout;
}
public void mouseClicked(MouseEvent e) {
Object o = e.getSource();
javax.swing.JOptionPane.showMessageDialog(null, e.getSource());
if (o instanceof JButton) {
JButton b = (JButton)e.getSource();
javax.swing.JOptionPane.showMessageDialog(null, b);
}
}
public void mouseReleased(MouseEvent e) { }
public void mousePressed(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }

public static void main(String [] args) {
JFrame frame = new TestLayout("Démo de gestionnaires de positionnement");
Dimension dimScreen = frame.getToolkit().getScreenSize();
frame.setSize(500, 300);
frame.setLocation((dimScreen.width-frame.getWidth())/2,
(dimScreen.height-frame.getHeight())/2);
frame.setVisible(true);
}
}//TestLayout
Assis sur la banquise :clown)

6 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
9 juil. 2004 à 11:22
1) t'as mis un addMouseListener seulement sur le Panel du grid.
appuis sur ton boutton dans le panel du grid 'pas sur les boutton mais dans le gris) et paf ca ouvre ta fenetre.

2) pour les appuis boutton il faut:
JButton button=new JButton(...);
button.addActionListener(....);
truc.add(button,..);
0
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
9 juil. 2004 à 11:43
Tu parles au niveau de la boucle?

Parce que si c'est le cas, je ne vois pas comment faire...

Assis sur la banquise :clown)
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
9 juil. 2004 à 11:52
a chaque fois que tu fait un boutton, tu fais:

panel.add(new JButton(...));

au lieu de ca fait:

JButton b=new JButton(...);
b.addActionListener(...);
panel.add(b);
0
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
9 juil. 2004 à 12:10
Je teste, ça a l'air bon ( au passage, tu t'es gouré puisqu'il me faut un MouseListener, et pas un actionListener ;-)
Lorsque le MessageDialog apparaît, je me retrouve avec le bouton, et non simplement la lettre! c'est quoi ce binz'?? :))
Assis sur la banquise :clown)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
9 juil. 2004 à 13:05
non MouseListener c'est pour detecter les evenement souris, ActionListener du boutton detecte le click du bouton que ce soit par souris, barree d'espace...
La source du click est un boutton, tu lui demande de l'afficher donc c'est normal qui l'affiche!utilise getText si tu veux le texte.
0
Boubousik Messages postés 15 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 janvier 2005
9 juil. 2004 à 15:03
Ah ok!!

Génial tout passe!!!
Merci beaucoup!

Assis sur la banquise :clown)
0
Rejoignez-nous