为什么我的按钮没有出现在我的JPanel-Java上

为什么我的按钮没有出现在我的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)

或者我的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);
    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解决了我的问题,使用您的解决方案,框架在屏幕左上角显示得非常小。顺便说一句,我添加了最小尺寸和位置设置。