Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFrame不';不添加选项卡窗格_Java_Swing_Jframe_Jtabbedpane - Fatal编程技术网

Java JFrame不';不添加选项卡窗格

Java JFrame不';不添加选项卡窗格,java,swing,jframe,jtabbedpane,Java,Swing,Jframe,Jtabbedpane,我的JFrame没有添加JTabbedPane,我不知道崩溃是否是我的eclipse的某种bug。没有语法错误或任何我认为是错误的东西。其他人可以试着运行它,看看它是否有效吗?代码已准备好运行。提前谢谢 public class MainScreen extends JFrame implements ActionListener { JMenuBar bar; JMenu file, register; JMenuItem close, search; Ima

我的JFrame没有添加JTabbedPane,我不知道崩溃是否是我的eclipse的某种bug。没有语法错误或任何我认为是错误的东西。其他人可以试着运行它,看看它是否有效吗?代码已准备好运行。提前谢谢

public class MainScreen extends JFrame implements ActionListener {

    JMenuBar bar;
    JMenu file, register;
    JMenuItem close, search;
    ImageIcon logo= new ImageIcon("rsc/img/sh-logo.jpg");
    ImageIcon worldIcon= new ImageIcon("rsc/img/world-icon.png");
    JLabel lbImage1;
    JTabbedPane tabbedPane = new JTabbedPane();
    JPanel entrance = new JPanel();

    public MainScreen()
    {
        JFrame mainFrame = new JFrame();

        lbImage1= new JLabel(logo, JLabel.CENTER);
        entrance.add(lbImage1);
        tabbedPane.addTab("SHST", worldIcon, entrance);
        mainFrame.add( tabbedPane, BorderLayout.CENTER);

        bar= new JMenuBar();
        file= new JMenu("File");
        register= new JMenu("Search");

        close= new JMenuItem("Close");
        close.addActionListener(this);

        search= new JMenuItem("Request Query");
        search.addActionListener(this);

        //Keyboard Shortcut
        register.setMnemonic(KeyEvent.VK_S);
        file.setMnemonic(KeyEvent.VK_F);
        search.setMnemonic(KeyEvent.VK_R);

        //mainFrame Setup
        bar.add(file);
        bar.add(register);
        file.add(close);
        register.add(search);
        mainFrame.add(bar);
        mainFrame.setExtendedState(getExtendedState() | mainFrame.MAXIMIZED_BOTH); // Maximized Window or setSize(getMaximumSize());
        mainFrame.setTitle("SHST");
        mainFrame.setJMenuBar(bar);
        mainFrame.setDefaultCloseOperation(0);
        mainFrame.setVisible(true);

            WindowListener J=new WindowAdapter(){
            public void windowClosing(WindowEvent e){
            System.exit(0);
            }
        }; 

        addWindowListener(J);
}

public void actionPerformed(ActionEvent e){
        if(e.getSource()==close){
            System.exit(0);
        }
        }

public static void main (String[] args){
        MainScreen m= new MainScreen();
    }
}

您已经在内容窗格中添加了JMenuBar。这不是必需的


在您的代码
mainFrame.add(bar)中删除这一行
大型机.setJMenuBar(bar)已添加。

您已在内容窗格中添加了JMenuBar。这不是必需的


在您的代码
mainFrame.add(bar)中删除这一行
大型机.setJMenuBar(bar)已添加。

您不能将
JTabbedPane
直接添加到您的
JFrame
mainFrame.add(tabbedPane,…)
)中,而是将其添加到contentPane中:
mainFrame.getContentPane().add(tabbedPane,…)

您不能将
JTabbedPane
直接添加到您的
JFrame
mainFrame.add(tabbedPane,…)
)中,而是将其添加到contentPane中:
mainFrame.getContentPane().add(tabbedPane,…)
您缺少执行的
操作(ActionEvent e)
ActionListener
中的
方法。实际上,我忘了在这里复制1)源代码中的一行空白就足够了。2) 不要延伸框架或其他顶级容器。而是创建并使用一个实例。3) 对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。4) 为了更快地获得更好的帮助,请发布一个。5) 在这里向
JFrame
添加
WindowAdapter
没有意义。相反,调用
setDefaultClosOperation(int)
@andrewhompson感谢浏览提示您缺少
ActionListener
中的
actionPerformed(ActionEvent e)
方法。实际上,我忘了复制这里1)源代码中的一行空白就足够了。2) 不要延伸框架或其他顶级容器。而是创建并使用一个实例。3) 对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。4) 为了更快地获得更好的帮助,请发布一个。5) 在这里向
JFrame
添加
WindowAdapter
没有意义。相反,请调用
setDefaultClosoOperation(int)
@andreThompson,谢谢你的提示浏览,它与Java 1.5(?)没有什么不同。有一个属性(
rootPaneCheckingEnabled
)来控制它(但我不知道你为什么要关闭它)。啊,谢谢,我认为人们应该更仔细地阅读从一个JAVA版本到另一个JAVA版本的变化。我从早期的JAVA版本中就知道了这个问题,它与JAVA 1.5(?)没有什么区别。有一个属性(
rootPanechkingEnabled
)可以控制这个问题(但我不知道为什么要关闭它)。啊,谢谢,我认为人们应该更仔细地阅读从一个JAVA版本到另一个JAVA版本的更改。我从早期的JAVA版本就知道了这个问题