Pb avec les gestionnaires

bouchti Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 26 avril 2003 - 24 avril 2003 à 17:47
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 - 28 avril 2003 à 11:39
Bonjour
je veux réaliser une petite interface avec un JTabbedPane
est en bas deux boutton
jèai utilisé le gride layout il m' divisé l'interface en deux parties egaux une pour le JTabbedPane et l'autre pour les deux boutton ce qui n'était pas agréable a voir puis j'ai réflichis autiliser les boxLayout Main un pb a l'execution:
"adding window to a container" . j'aimeris bien que vous m'aider vici le code:

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

public class TabbedPaneDemo extends JFrame {
public TabbedPaneDemo() {
ImageIcon icon = new ImageIcon("middle.gif");
JTabbedPane tabbedPane = new JTabbedPane();

Component panel1 = makeTextPanel("Blah");
tabbedPane.addTab("One", icon, panel1, "Does nothing");
tabbedPane.setSelectedIndex(0);

Component panel2 = makeTextPanel("Blah blah");
tabbedPane.addTab("Two", icon, panel2, "Does twice as much nothing");

Component panel3 = makeTextPanel("Blah blah blah");
tabbedPane.addTab("Three", icon, panel3, "Still does nothing");

Component panel4 = makeTextPanel("Blah blah blah blah");
tabbedPane.addTab("Four", icon, panel4, "Does nothing at all");

JPanel tabpanel=new JPanel();
tabpanel.setLayout(new BoxLayout(tabpanel, BoxLayout.Y_AXIS));
tabpanel.add(tabbedPane);

JPanel buttonPane=new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.X_AXIS));

JButton okButton=new JButton("OK");
//okButton.setActionCommand("OK");
//okButton.addActionListener(this);
JButton cancelButton=new JButton("Cancel");
//cancelButton.setActionCommand("Cancel");
//cancelButton.addActionListener(this);
buttonPane.add(okButton);
buttonPane.add(cancelButton);
buttonPane.setAlignmentX(Component.CENTER_ALIGNMENT);

buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
buttonPane.add(Box.createHorizontalGlue());
buttonPane.add(okButton);
buttonPane.add(Box.createRigidArea(new Dimension(10, 0)));
buttonPane.add(cancelButton);

Container contentPane = getContentPane();
contentPane.add(tabpanel, BorderLayout.CENTER);
contentPane.add(buttonPane, BorderLayout.SOUTH);
//pack();

}

protected Component makeTextPanel(String text) {
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}

public static void main(String[] args) {
JFrame frame = new JFrame(";jkjhlkj");
TabbedPaneDemo a = new TabbedPaneDemo();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});

frame.getContentPane().add(new TabbedPaneDemo(),
BorderLayout.CENTER);

frame.setSize(400, 300);
//frame.setResizable(false);
frame.setVisible(true);
}
}

1 réponse

benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
28 avril 2003 à 11:39
salut,
le probleme se situe a la fin de ton fichier
dans la methode main:
tu crees un objet tabbedpanedemo qui est une jframe
et tu l ajoute a une jframe precedement cree ce qui est impossible
voici donc la correction de la methode main, je l ai teste et ca marche nickel:

public static void main(String[] args) {

TabbedPaneDemo a = new TabbedPaneDemo();
a.setSize(400, 300);
//frame.setResizable(false);
a.setVisible(true);
}

tu n es pas oblige de crees un windowadapter pour te fenetre si tu n utilise que la methode windowclosing
ajoute juste dans le constructeur de ta fentre (ici tabbedpanedemo) la ligne suivante:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c est plus simple et moins fatiguant a taper
voila

:clown) Benohite :-p
0
Rejoignez-nous