gpt4 book ai didi

java - 让元素消失

转载 作者:行者123 更新时间:2023-12-01 17:18:23 24 4
gpt4 key购买 nike

我有一个应用程序,在进行更改后会出现一个绿色复选标记,表示更改成功。该应用程序有几个可能的更改,我希望能够在 2.5 秒后让复选标记消失。我尝试过以下几种方法:

panel.add(checkMark);
checkMark.setVisible(true);
panel.remove(checkMark);
checkMark.setVisible(false);

似乎没有什么效果。我添加了一个 timer 调用,然后添加了一个 checkMark.setVisible(false) ,但似乎没有任何帮助。

有人可以指出我做错了什么吗?下面是我的代码:

//Create Change Role Button
final JButton changeRoleBtn = new JButton("Change Role");
changeRoleBtn.setBounds(50, 500, 150, 30);
changeRoleBtn.setToolTipText("Changes the role of the User");
changeRoleBtn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//Create Success Image
final ImageIcon i1 = new ImageIcon("/Users/vhaislsalisc/Documents/workspace/Role_Switcher/greenCheck.png");
final JLabel checkMark = new JLabel(i1);
checkMark.isOptimizedDrawingEnabled();
i1.paintIcon(changeRoleBtn, getGraphics(), 400,25);
checkMark.setVisible(true);
try
{
timer = new Timer(2000, new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e)
{
checkMark.setVisible(false);
timer.stop();

}
});
timer.start();

}
catch(Exception e5)
{
e5.printStackTrace();
timer.stop();
}
}

});

这里是关于计时器的一些内容。其他代码是相关的,因为它包括我对图形的声明以及它是如何被调用和使用的。

try
{
timer = new Timer(2000, new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e)
{
checkMark.setVisible(false);
timer.stop();

}
});
timer.start();

}
catch(Exception e5)
{
e5.printStackTrace();
timer.stop();
}

最佳答案

panel.add(checkMark);
checkMark.setVisible(true);
panel.remove(checkMark);
checkMark.setVisible(false);

当您从可见 GUI 添加/删除组件时,基本代码是:

panel.add(...);
panel.revalidate();
panel.repaint();

默认情况下,所有组件的大小都为零,因此在执行 revalidate()(调用布局管理器为组件指定大小)之前,无需绘制任何内容。

因此,您将使用上面的代码来显示组件,然后启动计时器,当计时器触发时,您将删除它。

关于java - 让元素消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480009/

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