C'est mon frame principal, MainMenuBar et MainToolBar sont la barre de menu et la barre d'outils que j'ai créé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public class FrameMain extends JFrame{ private static final long serialVersionUID = 1; private MainToolBar toolBar; private MainMenuBar menuBar; public FrameMain(){ toolBar = new MainToolBar(); menuBar = new MainMenuBar(); setJMenuBar(menuBar); PanelDBExplorer explorer = new PanelDBExplorer(); JScrollPane scrollPane = new JScrollPane(explorer); JPanel contentPane = new JPanel(new BorderLayout()); contentPane.add(toolBar, BorderLayout.NORTH); contentPane.add(scrollPane, BorderLayout.CENTER); setContentPane(contentPane); setTitle("xxxxxx"); pack(); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
C'est la classe Main du projet. J'ai stocké le référence du frame dans un attribut public et static. C'est pour faciliter l'accès au frame principal de l'application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Main { public static final FrameMain appFrame = new FrameMain(); public static void main(String[] args){ Main.appFrame.setVisible(true); } }
Voilà le problème: Quand je clique un bouton sur la barre d'outils ou le menu pour changer le ContentPane du frame. le programme plante.
Je ne vois vraiment pas où est le problème. Si vous connaissez ou vous avez trouvé le bug, veuillez me l'indiquer, merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class ActionStatistic extends AbstractAction{ private static final long serialVersionUID = 1; public ActionStatistic(String text, Icon icon, KeyStroke accelerator, String desc){ super(); putValue(Action.SMALL_ICON, icon); putValue(Action.LARGE_ICON_KEY, icon); putValue(Action.NAME, text); putValue(Action.ACCELERATOR_KEY, accelerator); putValue(Action.SHORT_DESCRIPTION, desc); } public void actionPerformed(ActionEvent e){ PanelStatistic panelStat = new PanelStatistic(); // C'est cette ligne là qui me pose le problème. Main.appFrame.setContentPane(panelStat); } }![]()







Répondre avec citation




quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez 
Partager