Java 如何将JButton放置在带有图像的JLabel上?

Java 如何将JButton放置在带有图像的JLabel上?,java,swing,jbutton,jlabel,Java,Swing,Jbutton,Jlabel,我使用NetBeans IDE使用java创建应用程序。我想在带有图像的JLabel上包含JButton。实际上,当我在JLabel上添加JButton时,它将被插入,但它将是透明的,并且名称和按钮没有显示。似乎要在JLabel下添加该按钮。如何克服这个问题?有两种方法 通过覆盖paintComponent(标准方式)将图像放入JPanel JLabel在API中没有任何LayoutManager,您必须设置LayoutManager,然后JLabel将被删除 有两种方法 通过覆盖paintCo

我使用NetBeans IDE使用java创建应用程序。我想在带有图像的
JLabel
上包含
JButton
。实际上,当我在
JLabel
上添加
JButton
时,它将被插入,但它将是透明的,并且名称和按钮没有显示。似乎要在
JLabel
下添加该按钮。如何克服这个问题?

有两种方法

  • 通过覆盖
    paintComponent
    (标准方式)将图像放入
    JPanel

  • JLabel
    在API中没有任何
    LayoutManager
    ,您必须设置
    LayoutManager
    ,然后
    JLabel
    将被删除

  • 有两种方法

  • 通过覆盖
    paintComponent
    (标准方式)将图像放入
    JPanel

  • JLabel
    在API中没有任何
    LayoutManager
    ,您必须设置
    LayoutManager
    ,然后
    JLabel
    将被删除


  • 那么,你到底想在这里完成什么?在Swing中分层组件并不是那么容易。有关更多信息,请参阅。首先,向我们展示您的尝试,然后制作一个描述您的需求的图像,将其上载到某个图像托管站点并在您的问题中链接。如果您想保持简单,我将使用JLayeredPane:)您可以使用图像创建一个JButton,那么JLabel为您做了什么?下面给出了一个示例。你应该根据自己的需要选择一个合适的布局管理器。那么,你到底想在这里实现什么呢?在Swing中分层组件并不是那么容易。有关更多信息,请参阅。首先,向我们展示您的尝试,然后制作一个描述您的需求的图像,将其上载到某个图像托管站点并在您的问题中链接。如果您想保持简单,我将使用JLayeredPane:)您可以使用图像创建一个JButton,那么JLabel为您做了什么?下面给出了一个示例。您应该根据需要选择合适的布局管理器。建议+1。我认为OP面临的问题是缺少
    JLabel
    的布局管理器。建议+1。我认为OP面临的问题是缺少
    JLabel
    的布局管理器。
    ImageIcon img = null;
    class Panel extends JPanel{
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g); 
            if (img == null){
                img = new ImageIcon("d:\\picture.jpg");
                 g.drawImage(img.getImage(), 0, 0, null);
            }            
        }
    }
    
    //in the constructor
    JButton button = new JButton( "OK");
    Panel panel = new Panel();
    panel.add(button);
    add(panel);