Java JFrame不';不添加选项卡窗格
我的JFrame没有添加JTabbedPane,我不知道崩溃是否是我的eclipse的某种bug。没有语法错误或任何我认为是错误的东西。其他人可以试着运行它,看看它是否有效吗?代码已准备好运行。提前谢谢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
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版本就知道了这个问题