Bonjour à tous,
je vous explique mon problème :
J'ai crée une fonction qui permet de lancer une petite fenêtre de choix, avec deux boutons. Cette fonction est appelée au démarrage de l'application et tout va bien. Voici la fonction que j'appelle :
public static void displaySelectionFrame ()
{ Loader_OBJ_Select newLoaderSelection = new Loader_OBJ_Select(); // Création de le fenêtre de choix du loader OBJ
newLoaderSelection.getSelectFrame().setVisible(true);
while ( newLoaderSelection.selection == false )
{
ViewerJava3DMain.useManualOBJLoader = newLoaderSelection.manualLoading;
}
newLoaderSelection.getSelectFrame().dispose();
}Comme vous l'aurez compris, la classe que j'utilise pour lancer la fenêtre est "
Loader_OBJ_Select". Le problème que j'ai, c'est que quand je relance une deuxième fois cette fonction, la fenêtre s'affiche, mais celle-ci est transparente au milieu, il n'y a que les bordures de la fenêtre JFrame avec le nom de la fenêtre. Voici en gros le code de la classe concernée :
public class Loader_OBJ_Select {
public boolean selection = false;
public boolean manualLoading = true;
private static JFrame selectFrame;
Loader_OBJ_Select () {
selectFrame = new JFrame("Sélectionnez le Loader");
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
double screenWidth = screenDim.getWidth();
double screenHeight = screenDim.getHeight();
selectFrame.setBounds((int)(screenWidth-300)/2, (int)(screenHeight-100)/2, 300, 100);
selectFrame.getContentPane().setLayout(new BorderLayout());
selectFrame.setResizable(false);
selectFrame.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
}
);
JPanel panelUp = new JPanel();
JPanel panelDown = new JPanel();
panelDown.applyComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT );
selectFrame.getContentPane().add(BorderLayout.SOUTH, panelDown);
selectFrame.getContentPane().add(BorderLayout.NORTH, panelUp);
JButton Manual_Loader = new JButton("Loader Java");
Manual_Loader.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
manualLoading = false;
selection = true;
}
});
JButton Auto_Loader = new JButton("Loader crée");
Auto_Loader.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
manualLoading = true;
selection = true;
}
});
JTextArea Choice = new JTextArea ("Choisissez le Loader que vous souhaitez utiliser :");
panelUp.add(Choice);
panelDown.add(Manual_Loader);
panelDown.add(Auto_Loader);
}
// Récupérer la fenêtre de sélection du Loader
JFrame getSelectFrame ()
{
return Loader_OBJ_Select.selectFrame;
}
}
Je vous avoue que je suis complètement perdu, je ne vois pas du tout d'où provient le problème...
Merci beaucoup d'avance!
Romain.