为什么我的按钮没有出现在我的JPanel-Java上
或者我的JPanel根本就没有出现 我正试图在屏幕底部有一个JPanel,上面有几个按钮。有人能把我难住吗为什么我的按钮没有出现在我的JPanel-Java上,java,swing,Java,Swing,或者我的JPanel根本就没有出现 我正试图在屏幕底部有一个JPanel,上面有几个按钮。有人能把我难住吗 public class MyAWTMenu extends java.awt.Frame// implements ActionListener { public void init() { setBackground( Color.white ); JPanel bottom = new JPanel(); bottom.setBackground(Color.BLACK)
public class MyAWTMenu extends java.awt.Frame// implements ActionListener
{
public void init() {
setBackground( Color.white );
JPanel bottom = new JPanel();
bottom.setBackground(Color.BLACK);
JButton b1 = new JButton("test");
b1.setVisible(true);
bottom.add(b1);
bottom.setVisible(true);
add(bottom,BorderLayout.CENTER);
}
public static void main( String args [] ) {
MyAWTMenu objAppFrame = new MyAWTMenu();
objAppFrame.addWindowListener( //Register an anonymous class as a listener.
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
objAppFrame.init();
objAppFrame.setSize( 760, 378);
objAppFrame.setVisible( true );
}
addbottom,BorderLayout.SOUTH;
在你的初始
这是我正在运行的代码。这对我来说似乎很管用。我确实添加了一个呼叫来打包
addbottom,BorderLayout.SOUTH;
在你的初始
这是我正在运行的代码。这对我来说似乎很管用。我确实添加了一个呼叫来打包
我最好重写如下:
public class FooFrame extends JFrame {
public FooFrame() {
// your code, copy/pasted
setBackground(Color.white);
JPanel bottom = new JPanel();
bottom.setBackground(Color.BLACK);
JButton b1 = new JButton("test");
bottom.add(b1);
add(bottom, BorderLayout.CENTER);
// set size & pack
Dimension size = new Dimension(400, 400);
setPreferredSize(size);
setMinimumSize(size);
pack();
setLocationRelativeTo(null);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FooFrame().setVisible(true);
}
});
}
}
我最好重写如下:
public class FooFrame extends JFrame {
public FooFrame() {
// your code, copy/pasted
setBackground(Color.white);
JPanel bottom = new JPanel();
bottom.setBackground(Color.BLACK);
JButton b1 = new JButton("test");
bottom.add(b1);
add(bottom, BorderLayout.CENTER);
// set size & pack
Dimension size = new Dimension(400, 400);
setPreferredSize(size);
setMinimumSize(size);
pack();
setLocationRelativeTo(null);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FooFrame().setVisible(true);
}
});
}
}
没有显示任何内容,没有空的黑色面板,没有显示任何内容。如果我不使用面板,直接添加按钮,它会填满整个屏幕,你不是在添加面板吗?或者对今天来说可能太晚了:是的,格式化太晚了,meI不这么认为,因为类扩展了Frame,所以addpanel将是this.addpanel,它将把它添加到Frame中。我想-编辑:哈哈,很抱歉格式化,很难用这个东西格式化我很久没有用Java来做GUI工作了,但这可能是因为你混合了AWT和Swing组件吗?试着用Panel代替JPanel,用Button代替JButton,也许吧?这段代码对我很有用。我把它放在Eclipse中,它工作得很好。什么都没有显示,没有一个空的黑色面板,什么都没有。如果我不使用面板,直接添加按钮,它会填满整个屏幕,你不是在添加面板吗?或者对今天来说可能太晚了:是的,格式化太晚了,meI不这么认为,因为类扩展了Frame,所以addpanel将是this.addpanel,它将把它添加到Frame中。我想-编辑:哈哈,很抱歉格式化,很难用这个东西格式化我很久没有用Java来做GUI工作了,但这可能是因为你混合了AWT和Swing组件吗?试着用Panel代替JPanel,用Button代替JButton,也许吧?这段代码对我很有用。我把它放在Eclipse中,效果很好。对不起,实际上你的问题读错了,试试上面的修改。这将在框架底部添加一个带按钮的黑色面板。确定。所以实际上你的两个答案都是对的。我需要说b1.setVisibletrue和use.SOTUH。现在我想知道为什么,为什么说。中心不起作用?太奇怪了…把它从中心改到南部肯定会有效果。它会将你的黑色JPanel移到画面的南部,而将上部保留为白色。我需要一些排序刷新吗?看起来好像什么也没出现,直到我的诅咒者把它放在应该的地方。出了点问题。不管怎样,窗格的背景都不是黑色的。只有当我将光标拖动到按钮上时,按钮才会显示。。。好像它需要刷新。如果我使用.CENTER,则根本不会显示任何内容对不起,请将您的问题读错,然后尝试上面的更改。这将在框架底部添加一个带按钮的黑色面板。确定。所以实际上你的两个答案都是对的。我需要说b1.setVisibletrue和use.SOTUH。现在我想知道为什么,为什么说。中心不起作用?太奇怪了…把它从中心改到南部肯定会有效果。它会将你的黑色JPanel移到画面的南部,而将上部保留为白色。我需要一些排序刷新吗?看起来好像什么也没出现,直到我的诅咒者把它放在应该的地方。出了点问题。不管怎样,窗格的背景都不是黑色的。只有当我将光标拖动到按钮上时,按钮才会显示。。。好像它需要刷新。如果我使用.CENTER,则在暗示jframe而非frame时不会显示任何内容解决了我的问题,但是,使用您的解决方案,该框架在屏幕左上角显示得非常小。顺便说一句,我添加了最小大小和位置设置。使用jframe而非frame解决了我的问题,使用您的解决方案,框架在屏幕左上角显示得非常小。顺便说一句,我添加了最小尺寸和位置设置。