gpt4 book ai didi

java - 等待用户输入 Java Swing

转载 作者:行者123 更新时间:2023-12-02 08:52:01 24 4
gpt4 key购买 nike

我正在使用 JAVA Swing 创建一个非常基本的 UI。当我运行该程序时,将打开一个窗口,其中包含一条消息和浏览按钮(使用框架和 JButtons 进行相同的操作)。单击浏览按钮后,将打开另一个窗口以导航到该文件。我通过在浏览按钮的单击事件上调用 FileChooser 来实现这一点。但是,我的程序不等待用户输入。第一个带有浏览按钮的窗口打开,程序继续执行,并最终出现错误,因为没有选择文件。如何停止执行直到提供用户输入?在论坛中,建议使用浏览器的 showOpenDialog() 方法,但会立即打开浏览窗口,而我想向用户提供单击浏览按钮 browsewindow 的规定 pick file window

我的代码如下

    frame.setLayout(new FlowLayout());
// set up a file picker component
JFilePicker filePicker = new JFilePicker("Pick a file", "Browse...");
filePicker.setMode(JFilePicker.MODE_OPEN);
filePicker.addFileTypeFilter(".jpg", "JPEG Images");
filePicker.addFileTypeFilter(".mp4", "MPEG-4 Videos");

// access JFileChooser class directly
JFileChooser fileChooser = filePicker.getFileChooser();
fileChooser.setCurrentDirectory(new File("C:/"));
// add the component to the frame
frame.add(filePicker);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(520, 100);
frame.setLocationRelativeTo(null); // center on screen
frame.setVisible(true);
System.out.println();

JPicker 是一个自定义类,它创建文件选择器并设置单击“浏览”按钮时要完成的操作

最佳答案

当然,您可以在 JFrame 初始化结束时将其设置为可见。您需要在启动类的 ma​​in() 方法中执行此操作。你的在哪里?

JFilePicker (创建者:Nam Ha Minh)作为 Java 组件应用于 JFrame,以便在 GUI 开发中节省一点时间。我个人会直接在 JButton ActionPerformed 事件中使用 JFileChooser。如果您正确遵循了说明,那么您会发现您需要一个有意义的 ma​​in() 方法。您的应用程序启动类应该如下所示:

import java.awt.FlowLayout;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class TestJFilePicker extends JFrame {

private static final long serialVersionUID = 1L;

public TestJFilePicker() {
super("Test using JFilePicker");

setLayout(new FlowLayout());

// set up a file picker component
JFilePicker filePicker = new JFilePicker("Pick a file", "Browse...");
filePicker.setMode(JFilePicker.MODE_OPEN);
filePicker.addFileTypeFilter(".jpg", "JPEG Images");
filePicker.addFileTypeFilter(".mp4", "MPEG-4 Videos");

// access JFileChooser class directly
JFileChooser fileChooser = filePicker.getFileChooser();
fileChooser.setCurrentDirectory(new File("D:/"));

// add the component to the frame
add(filePicker);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(520, 100);
setLocationRelativeTo(null); // center on screen
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestJFilePicker().setVisible(true);
}
});
}

}

上面的代码(这是 Nam Ha Minh 的作品)当然假设您已经应用了 JFilePickerFileTypeFilter类文件添加到您的项目中。没有它们,上面的代码将无法工作。

关于java - 等待用户输入 Java Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60716759/

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