【发布时间】:2016-03-14 19:10:35
【问题描述】:
我想在鼠标悬停时将 JButton 添加到另一个 JButton。这是我的实际代码:
public class JFrameButton extends JFrame
{
public static void main(String[] args)
{
main();
}
public static void main()
{
new JFrameButton();
}
public JFrameButton()
{
boutonExterne = new JButton("Externe");
boutonInterne = new JButton("Interne");
boutonExterne.setLayout(new BorderLayout());
setSize(200, 200);
setLocation(100, 100);
setVisible(true);
boutonExterne.addMouseListener(new MouseAdapter()
{
@Override
public void mouseExited(MouseEvent e)
{
boutonExterne.remove(boutonInterne);
JFrameButton.this.revalidate();
JFrameButton.this.repaint();
}
@Override
public void mouseEntered(MouseEvent e)
{
JFrameButton.this.boutonExterne.add(boutonInterne, BorderLayout.SOUTH);
JFrameButton.this.revalidate();
JFrameButton.this.repaint();
}
});
this.add(boutonExterne);
}
private JButton boutonExterne,boutonInterne;
}
【问题讨论】:
-
在
repaint之前致电revalidate。如果这不起作用,请发布minimal reproducible example -
好吧,既然你的光标在
Interne按钮上,它不再被认为是在Externe的可见区域。因此,您可能会立即收到mouseExited事件。 -
@Reimeus 我已经按照你的建议编辑了我的代码
标签: java jbutton listener mouselistener