问题标签 [swingutilities]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
431 浏览

java - 对执行 Swing 应用程序的主类中的 SwingUtilities.invokeLater() 方法的调用到底是什么?

我是Swing的新手,我对这个启动基于教程项目的 Swing 应用程序的主类有以下疑问:

因此,此类包含main()方法,该方法是应用程序启动时执行的方法。

它执行SwingUtilities.invokeLater()方法,该方法创建一个包含run()方法的Runnable对象,该方法本身执行作为我的 Swing 应用程序入口点的runApp()方法。

我的疑问与SwingUtilities.invokeLater()方法的确切作用有关。究竟是做什么的?作为invokeLater()方法的参数创建的Runnable对象是什么?在我看来,它是一个自动实现Runnable接口的对象,但我不确定,我也不清楚为什么要这样做。

你能帮我理解这个简单的 Swing 应用程序的架构是如何工作的吗?

0 投票
1 回答
389 浏览

java - 用于 SplitPane 分隔器的 Java 金属外观 UIManager 画家

我在使用 UIManager.put(...) 调用绘制 JSplitPane 分隔线时遇到了一些困难。它只是不工作。我正在使用“金属”的外观和感觉,并且必须在创建 GUI 之后进行此更改。我所有其他 UIManager.put(...) 操作似乎都有效,但仅适用于颜色键项目。当一切都说完了,我也使用 SwingUtilities.updateComponentTreeUI(getRootPane()) 。我的代码示例如下。我想知道是否有人建议让我的画家工作。谢谢大家的时间和帮助!

以上只是我正在尝试做的一个示例。知道为什么它不起作用吗?再次感谢大家的帮助!

0 投票
1 回答
1768 浏览

java - Java Swing ProgressBar 在计算时更新

有一些类似问题(Progress Bar Java)和(Java uploading percent progressbar thread)的例子,但不明白如何使它适用于我的代码。

我的主要有 2 个面板相互重叠(其中一个是带有 2 个选项卡的 tabbedPane)

重要的是这个对象:SMRPanel smrPanel = new SMRPanel();

在这个对象中,我有一个 JButton ,我从一个类convertArchiveButton中添加了一个 ActionListenerController

这是Controller中Listener的实现

converter是执行冗长操作的类

我的例子试图添加一些新RunnableEventQueueSwingUtilities但没有奏效。上课SwingWorker有用吗?不太明白用途。

基本上,int progress会传递JProgressBarSMRPanel.

使用 ControlAltDel 编辑答案:

仍然不起作用,converter.readFile(file);没有被调用。

0 投票
0 回答
51 浏览

java - 为什么JFrame一直卡到操作完成?

JFrameJButton“中止”创建了一个。

JFrame显示了操作的状态。

假设该函数operation()包含我们要运行的操作的代码。

在运行函数代码时,operation()我无法单击JButton“中止”,因为它JFrame被卡住了。

因此,我认为原因可能是事件调度程序,因此我尝试使用以下方法解决invokeLater问题SwingUtilities

但是在JFrame操作代码运行时仍然卡住了。我怎样才能解决这个问题?

0 投票
3 回答
433 浏览

java - 最小化时 JTable 更新时 CPU 使用率高

更新:所以我发现是什么导致了这个问题。当我的 Java 窗口最小化时,我的表正在渲染每一行。有谁知道如何防止这种情况?

我有一个 JXTable,它每秒都在不断更新、删除和添加行数据。我们说的是平均每秒修改 10-20 行。

通常,CPU 使用率介于 5% 和 10% 之间。当我们每秒更新数百次时,它可以达到 15%。

但是,我们注意到,当我们的 Java 窗口最小化时,每当有任何更新通过时,我们的 CPU 使用率每次都会达到 25%。我们设置了一个脚本以每 5 秒添加一行,当该单行通过时,我们看到 CPU 使用率达到 25%。

我能想到的唯一解释是使用SwingUtilities.invokeAndWait()。我正在后台线程中修改行数据,并为各种 fireTableDataChanged() 方法使用 invokeAndWait。

我使用 invokeAndWait 因为我需要按顺序触发我的事件。例如,我删除一些行,调用 fireTableRowsDeleted(),然后添加一些行并调用 fireTableRowsInserted()。

任何想法为什么我的 CPU 使用率只有在表更新和窗口最小化时才达到 25%?

0 投票
1 回答
1905 浏览

java - 无法从事件调度程序线程调用方法

我正在编写一个记录用户鼠标移动和点击的程序,并使用Robot该类播放它们。

我遇到了这个错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException: Cannot call method from the event dispatcher thread

我已经阅读了有关 EDT 的所有内容,人们一直在向您提到必须在另一个线程中运行它才能退出 EDT。

我的问题是:为什么即使我使用了新线程,我的代码也不起作用?

这是代码:

System.out.println(SwingUtilities.isEventDispatchThread());打印为真

整个类代码在这里:

0 投票
2 回答
138 浏览

java - 更新不同类别的 LAF

在我编写的“Battleship”程序中,我包含了将程序的“外观”更改为 SystemDefault、“Metal”(Java 默认)或“Motif”(也包含在 Java 中)的可能性。JComboBox如果您从(--> 更改预定义的字符串, )中选择所需的 LAFlookFeel并按下确认按钮,UIManager.setLookAndFeel(lookFeel)则会调用该方法,SwingUtilities.updateComponentTreeUI(this)并且该方法updateUI()具有以下代码:

但是,此代码不会更新属于不同类的其他窗口。因此,如果我启动我的主程序,然后更改外观,这些窗口不会受到影响。那些实际创建框架的类不是问题,但我的主程序只是扩展了 JFrame(我可能不会再这样做了,但是当我开始编写这个程序时,我对 Java 完全陌生)。现在我的问题是:如何更改此类的 LAF?提前致谢!

0 投票
2 回答
121 浏览

java - 如何在运行确定在该 JTextArea 中显示什么的代码时在 JTextArea 中完成进度显示?

我不知道这是否可能。我正在制作一个彩票应用程序,并且尝试使用尽可能少的 GUI 组件。所以我有一个 JTextArea 应该显示以下消息(例如):

“计算中……55.4%”

当我将它打印到控制台时,它显示得很好,但它不会将它打印到 JTextArea。我尝试使用 SwingUtilities.invokeLater 但这也不起作用。

您可以猜到,我希望 JTextArea 更新,因为我在上面的 for 循环中设置了 textArea 的文本。它直到方法结束才更新 JTextArea,这是我设置文本区域以显示工单报告时的最底部。

彩票热申请

我的最终目标:我想最终把它变成一个 Android 手机应用程序,所以这就是我不想使用任何弹出窗口或任何东西的原因。

0 投票
2 回答
146 浏览

java - 无法在 JTextPane 中的 DoubleClick 上选择“带有数字和下划线的文本”

我的 JTextPane 中有一个类似“test_1_another_2_test3”的文本。当我双击文本时,它不会选择整个文本(有时,它只选择一个字符或数字或下划线之间的文本)。我可以实现 mouseactionlistener,但不知道如何实现动作。

0 投票
1 回答
811 浏览

java - 抛出 ClassCastException

我正在尝试JFrame使用SwingUtilities

类Loadingframe 是一个很简单的JFrame。有时在运行此代码时,我会得到 ClassCastException

我也试过InvokeLaterThreads only without Swing但同样的错误

对于我的加载类