我正在尝试实现一个全局加载对话框…我想调用一些静态函数来显示该对话框,并调用一些静态函数来关闭该对话框。同时,我正在主线程或子线程中做一些工作。
我尝试了以下操作,但对话框没有更新…最后一次,在再次隐藏之前,它会更新…
private static Runnable getLoadingRunable()
{
if (loadingRunnable != null)
{
loadingFrame.setLocationRelativeTo(null);
loadingFrame.setVisible(true);
return loadingRunnable;
}
loadingFrame = new JFrame("Updating...");
final JProgressBar progressBar = new JProgressBar();
progressBar.setIndeterminate(true);
final JPanel contentPane = new JPanel();
contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
contentPane.setLayout(new BorderLayout());
contentPane.add(new JLabel("Updating..."), BorderLayout.NORTH);
contentPane.add(progressBar, BorderLayout.CENTER);
loadingFrame.setContentPane(contentPane);
loadingFrame.pack();
loadingFrame.setLocationRelativeTo(null);
loadingFrame.setVisible(true);
loadingRunnable = new Runnable() {
public void run() {
try {
while (running) {
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
loadingFrame.setVisible(false);
}
});
}
};
return loadingRunnable;
}
public static void showLoadingBar() {
System.out.println("showLoadingBar");
running = true;
threadLoadingBar = new Thread(getLoadingRunable());
threadLoadingBar.start();
}
public static void hideLoadingBar() {
System.out.println("hideLoadingBar");
running = false;
threadLoadingBar = null;
}
如果未设置动画,则表示您正在显示加载框架时在事件分发线程中进行工作。此后台工作应在另一个线程中完成。
这是一个不起作用的示例:
public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(
new Runnable() {
@Override
public void run() {
try {
showLoadingBar();
Thread.sleep(10000L); // doing work in the EDT. Prevents the frame from animating
hideLoadingBar();
}
catch (InterruptedException e) {
}
}
}
);
}
这是一个工作示例:
public static void main(String[] args) throws Exception {
showLoadingBar();
Thread.sleep(10000L); // doing work outside of the EDT. Everything works fine
hideLoadingBar();
}
旁注:实例化,填充并使加载框架可见的代码应包装在中SwingUtilities.invokeLater()
,因为它必须在EDT中运行。
问题内容: 我需要建立一个对话框来与项目列表中的任何项目一起使用。该对话框与项目无关,几乎相同,只是字段的值显然与项目相关。 我正在构建的指令正在从文件中读取模板,使用$ compile对其进行编译,然后将其绑定(链接)到该项目的范围。绑定的结果是一棵DOM树。为了使对话框可见,我需要将此树附加到现有DOM中的某些元素上。对话框的性质使得将其直接附加到body标签是有意义的。该对话框将与列表中的不
本文向大家介绍vue 全局封装loading加载教程(全局监听),包括了vue 全局封装loading加载教程(全局监听)的使用技巧和注意事项,需要的朋友参考一下 前言: 为了页面美观,请求接口的时候延迟没有数据,页面感觉狠卡顿,封装loading,请求接口成功后隐藏掉(我这是用的vant 组件根据自己情况进行改变)。 第一步: 建立loading.vue 第二步: app.vue引入 增加开关
本文向大家介绍Android实现加载对话框,包括了Android实现加载对话框的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现加载对话框的具体代码,供大家参考,具体内容如下 这里简单说一下两种实现加载对话框的方式:1.使用动画让一个图片旋转 2.使用progressbar。 感觉简单来说,dialog就是一个弹出的window,把自己定义的布局放置到window里面
我有jbpm系统(),我想在系统内使用一个全局的。我创建了简单的过程事件lestener: 我的pom。xml: 当我将其添加为部署依赖项并通过工作台将其声明为jbpm项目中的事件监听器时,一切都运行正常。 但是现在我有很多项目,把事件监听器附加到每个项目上很不舒服。因此,我在wildfly中创建了新模块: 已创建部署描述符。xml服务器级别: 因此,当我创建一个新的jbpm进程并通过工作台将其部
全局对象提供可在任何地方使用的变量和函数。默认情况下,这些全局变量内置于语言或环境中。 在浏览器中,它的名字是 “window”,对 Node.js 而言,它的名字是 “global”,其它环境可能用的是别的名字。 最近,globalThis 被作为全局对象的标准名称加入到了 JavaScript 中,所有环境都应该支持该名称。所有主流浏览器都支持它。 假设我们的环境是浏览器,我们将在这儿使用 “
本文向大家介绍android实现加载动画对话框,包括了android实现加载动画对话框的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了android实现加载动画对话框的具体代码,供大家参考,具体内容如下 先来两张效果图 自定义对话框: 在layout文件夹下建立progress_dialog.xml 在res文件夹下建立anim文件夹,然后在里面建立frame.xml 动画是由一张一