Java JPanel和JMenuBar到同一帧
我似乎无法将JMenuBar和JPanel都添加到我的框架中 为什么 代码:Java JPanel和JMenuBar到同一帧,java,Java,我似乎无法将JMenuBar和JPanel都添加到我的框架中 为什么 代码: 使用此代码,不添加面板,只添加菜单。。。如果我删除菜单,面板将出现。面板不出现是什么意思?我可以看到这个代码的菜单和面板 如果问题仍然存在,请尝试向下移动setSize()、setResizeable()等块,如 import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.Act
使用此代码,不添加面板,只添加菜单。。。如果我删除菜单,面板将出现。面板不出现是什么意思?我可以看到这个代码的菜单和面板 如果问题仍然存在,请尝试向下移动setSize()、setResizeable()等块,如
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Proj extends JFrame implements ActionListener {
Proj() {
JMenuBar rodMenu = new JMenuBar();
JMenu menu = new JMenu("Vis");
JMenuItem men_item1 = new JMenuItem("Statestik");
JPanel wrapper = new JPanel();
wrapper.setPreferredSize(new Dimension(380, 240));
wrapper.setBorder(BorderFactory.createLineBorder(Color.black));
setJMenuBar(rodMenu);
rodMenu.add(menu);
menu.add(men_item1);
JButton b = new JButton("Test");
wrapper.add(b);
add(wrapper);
setSize(400, 300);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setVisible(true);
}
public static void main(String[] args) {
new Proj();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
尝试添加
this.getContentPane.add(wrapper)
而不是
add(wrapper)
对这正是我想要的样子!我跑的时候不是那样的吗?!?!??好的,现在我发现如果我连续运行20次,其中一个会正确运行我的代码!我讨厌每次运行时代码都不做同样的事情。。。这可能是NetBeans吗?好的,当我像你说的那样向下移动“setSize”等时,它起作用了。。。我不明白为什么,但它是有效的,谢谢:这很奇怪。这可能是由于某些类加载问题造成的?它可能不会接受您的更改。但是,当我们尝试使用setSize()、setVisible(true)等时,我看到了一些问题。首先,然后尝试添加组件,但可能不可见。这就是为什么我要你试着下楼。
add(wrapper)