gpt4 book ai didi

Java在鼠标悬停时在按钮上添加按钮

转载 作者:行者123 更新时间:2023-12-01 10:14:23 25 4
gpt4 key购买 nike

我想在鼠标悬停时将一个 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;

}

该产品此结果:
JButton on Jbutton
但是当我的鼠标悬停在“Interne”按钮上时,它会使按钮闪烁(出现和消失)。

最佳答案

正是如此。一旦您将鼠标从外部按钮的内容移到内部按钮上,就会调用内部按钮的 mouseExit,使您的内部按钮隐藏。

快速包看起来像:

    boutonExterne.addMouseListener(new MouseAdapter() {
boolean ignoreExit=false;

@Override
public void mouseExited(final MouseEvent e) {
if (!ignoreExit) {
boutonExterne.remove(boutonInterne);
JFrameButton.this.revalidate();
JFrameButton.this.repaint();
}
ignoreExit=true;
}

@Override
public void mouseEntered(final MouseEvent e) {
JFrameButton.this.boutonExterne.add(boutonInterne, BorderLayout.SOUTH);
JFrameButton.this.revalidate();
JFrameButton.this.repaint();
ignoreExit=true;
}

});

关于Java在鼠标悬停时在按钮上添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35996052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com