java - Swing线程通信

标签 java multithreading swing

我正在创建一个小型 Swing 应用程序,它绘制文件中给出的一组点。指南建议我为 GUI 调用一个新线程,为此我使用了以下代码。

java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new View().setVisible(true);
        }
    });

应用程序中的场景之一是打开文件(这是使用 JFileChooser 完成的)。

private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
    int returnVal = fileChooser.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        File file = fileChooser.getSelectedFile();
        //some heavy operations
    } else {
        System.out.println("File access cancelled by user.");
    }
}

在继续绘制点之前,需要完成一些繁重的操作。

我的问题是,是否建议将大量代码放在 GUI 线程中?是否可以将文件对象发送到主线程进行处理并将结果发送到GUI线程?

请注意,我对 Java Threading API 一无所知。

最佳答案

关于java - Swing线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026281/

相关文章:

java - 在java中将一个列表插入另一个列表?

java - 使用 java 代码清理 JBoss 7 tmp

java - 在签名的 jar 中使用 Java 配置

c - 为什么 futex 在唤醒线程时比 mutex 花费更长的时间?

java - 从 jtable 中删除行

JavaPreparedStatement带外键的多批量插入

c++ - 如何使用 dlmopen 在不同线程中打开多个共享库?

multithreading - 我不懂多线程编程

java - 通过子面板中 JButton 的 ActionEvent 将组件添加到父容器

java - 将 JTables 与 netbeans 6.1 又名 Matisse 一起使用