Error: adding a window to a container

bouchti Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 26 avril 2003 - 24 avril 2003 à 12:59
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 21 mai 2003 à 22:41
Bonjour
j'ai l'erreur "adding a window to a container"
lors de l'execution de non petit programme qui est le suivant

(si vous avez une solution n'hesiter de m'emvoyé la réponse le plus rapidement possible.Merci)

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);
}
}
A voir également:

7 réponses

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
24 avril 2003 à 23:04
En principe l'erreur est accompagné du numéro de ligne où se trouve l'erreur.

Mais en général un Window représente une fenêtre or c'est vrai tu ne peut pas mettre une fenétre dans un conteneur (comme un JPanel) car c'est très bizarre de mettre une fenêtre à l'intérieur d'une autre (a ne pas confondre avec une application MDI, ca n'a rien à voir !)

Plutot qu'une instance de Window tu devrais mettre une instance de JPanel dans ton conteneur

Core Breaker :)
0