Java 当鼠标悬停在上时,JButtons与组件重叠

Java 当鼠标悬停在上时,JButtons与组件重叠,java,swing,jbutton,Java,Swing,Jbutton,我已经在JButton的顶部(Z轴)设置了一个JPanel。当悬停在这个JPanel上时,如果JButton也悬停在上面,JButton会自动在所有组件的顶部重新绘制。这不利于我的程序正常工作。关于为什么会发生这种情况,以及我如何解决这个问题,有什么想法吗?谢谢你的帮助 这是我的代码的一个快速而简单的副本: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = ne

我已经在JButton的顶部(Z轴)设置了一个JPanel。当悬停在这个JPanel上时,如果JButton也悬停在上面,JButton会自动在所有组件的顶部重新绘制。这不利于我的程序正常工作。关于为什么会发生这种情况,以及我如何解决这个问题,有什么想法吗?谢谢你的帮助

这是我的代码的一个快速而简单的副本:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JPanel panel = new JPanel();
panel.setBackground(new Color(0, 0, 102));
panel.setBounds(0, 0, 169, 261);
contentPane.add(panel);
panel.setVisible(false);

JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
        panel.setVisible(!panel.isVisible());
    }
});
btnNewButton.setBounds(68, 70, 130, 70);
contentPane.add(btnNewButton);

JPanel从顶部(Z轴)开始,直到JButton悬停(即使JButton被JPanel覆盖)。我希望这些信息足以满足您的需求。

在Swing UI中,几乎总是使用布局管理器。请参见此以了解如何使用布局管理器:

因此,在代码中删除以下行:

contentPane.setLayout(null);
panel.setBounds(0, 0, 169, 261);
btnNewButton.setBounds(68, 70, 130, 70);
然后做一些类似的事情:

contentPane.setLayout(new BorderLayout());
contentPane.add(panel, BorderLayout.CENTER);
contentPane.add(btnNewButton, BorderLayout.SOUTH);

您正在重写一个paint方法而不调用它的超级方法。您正在使用基于alpha的颜色作为不透明组件的背景色。。。作为两个猜测。对于更具体的问题,考虑提供一个“我已经设置了JButt之上的JPAND”-为什么?它在我的程序中被用作一个简单的侧菜单,我希望编辑会使问题变得更容易理解。(1 -)代码>我希望编辑会使问题更易于理解< /COD> >而不是我。首先你说面板在“顶部”。我不知道你是指画面“北”部分的顶部,还是指显示在Z轴而不是x/y轴上的弹出菜单的顶部。现在你说它是一个“侧”面板。此外,所有相关信息都应包含在问题中,以便将所有信息放在一个位置。而且你还没有发布我们的,所以我们仍然不知道你使用什么自定义代码导致问题。谢谢你的帮助!我的问题已通过此修复解决,祝您一切顺利。