gpt4 book ai didi

java - 使用java自定义处理图标

转载 作者:行者123 更新时间:2023-11-30 09:21:46 26 4
gpt4 key购买 nike

我想在按钮被点击后显示正在处理的图标,让用户知道应用程序正在加载页面,他必须等到它完成。

以下是我为下面的代码得到的等待光标:

enter image description here

我为满足上述需求而开发的代码如下:

 public static boolean waitCursorIsShowing;
public Cursor waitCursor, defaultCursor;

waitCursor = new Cursor(Cursor.WAIT_CURSOR);
defaultCursor = new Cursor(Cursor.DEFAULT_CURSOR);

waitCursorIsShowing = true;
if (waitCursorIsShowing)
{
JFrame frame.setCursor(waitCursor);

-----------------------------------------------
/* code to load the page/ perform the business logic */
-----------------------------------------------

waitCursorIsShowing = false;
frame.setCursor(defaultCursor);
}

根据我的要求,这段代码运行良好。但是当我想在单击按钮时在按钮上显示另一个处理图像图标时,我得到的结果是相反的顺序。我的意思是当单击按钮并加载页面时,按钮上没有显示处理图像图标,但是当执行操作并在页面加载后释放按钮时,应用程序会在按钮上显示处理图像图标。

以下是我为以下代码获得的处理图像图标:

enter image description here

请帮助我哪里编码不正确。以下是修改后的代码。

public static boolean waitCursorIsShowing;
public Cursor waitCursor, defaultCursor;

waitCursor = new Cursor(Cursor.WAIT_CURSOR);
defaultCursor = new Cursor(Cursor.DEFAULT_CURSOR);

waitCursorIsShowing = true;
if (waitCursorIsShowing)
{

URL url = getClass().getResource("/Images/loader8.gif");
b4.setText("Loading");
b4.setIcon(new ImageIcon(url));

-----------------------------------------------
/* code to load the page/ perform the business logic */
-----------------------------------------------

waitCursorIsShowing = false;
b4.setIcon(new ImageIcon());
b4.setText("Submit");
}

b4 是我想要获取处理图像图标的按钮。

如何修改我的代码以在单击按钮和应用程序加载页面时自定义按钮上的图标?

最佳答案

请记住,事件都是在事件分派(dispatch)线程上处理的,该线程与处理绘画的线程相同。如果您在该线程上加载页面,那么在加载完成之前框架将无法重新绘制。相反,在后台线程上进行加载,并在完成后使用 SwingUtilities.invokeLater() 调用来设置图标。

关于java - 使用java自定义处理图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16792927/

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