我有一个图形显示,它在它的构造函数中创建一个新的JFrame,从那里渲染我的

时间:2015-06-07 16:41:51

标签: java jpanel

我正在尝试开发一个包含更多JPanel的Java应用程序。现在,我在主构造函数Graphics()中有所有JPanels,在那里,我将它们全部添加到JFrame中。我想打破代码,并将每个容器移动到自己的类中,但是,当我运行该代码时,它会一遍又一遍地重复,永远不会停止生成JFrame。关于如何破解我的代码的任何想法?

以下是代码:

    public Graphics() {

        //====== GENERAL=========//
        frame = new JFrame();
        frame.setSize(1300, 700);
        frame.setLocationRelativeTo(null); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.setVisible(true);
        //====== GENERAL=========//

        //====== MENU BAR=========//        
        JMenuBar menuBar = new JMenuBar();
        menuBar.setBounds(0, 0, 1284, 21);
        JMenu menuFile = new JMenu("File");
        menuBar.add(menuFile);
        JMenuItem itemMain = new JMenuItem(new AbstractAction("Main"){
            public void actionPerformed(ActionEvent e) {
                mainPage.setVisible(true);      
            }           
        });
        menuFile.add(itemMain);
        JMenuItem itemLog = new JMenuItem(new AbstractAction("Log off"){
            private static final long serialVersionUID = 1L;
            public void actionPerformed(ActionEvent e) {
                loginPage.setVisible(true);
                mainPage.setVisible(false); 
                passField.setText("");
                lblWrongPassword.setVisible(false);
            }           
        });
        menuFile.add(itemLog);
        JMenu menuHelp = new JMenu("Help");
        menuBar.add(menuHelp);
        JMenuItem menuHelpInfo = new JMenuItem(new AbstractAction("Directions"){
            public void actionPerformed(ActionEvent e) {
                 JOptionPane.showMessageDialog(frame, helpInfo);
        }           
        });
        menuHelp.add(menuHelpInfo);
        frame.setJMenuBar(menuBar);
        //====== MENU BAR=========//    


        //====== MAIN PAGE=========//
        mainPage = new JPanel();
        mainPage.setBounds(0, 0, 1284, 662);
        frame.getContentPane().add(mainPage);
        mainPage.setLayout(null);

0 个答案:

没有答案