等待用户输入Java Swing
我正在使用JavaSwing创建一个非常基本的UI。当我运行该程序时,将打开一个窗口,其中包含一条消息和一个浏览按钮(使用frame和JButtons)。单击浏览按钮,将打开另一个窗口以导航到该文件。我通过在Browse按钮的click事件上调用FileChooser实现了这一点。但是,我的程序不等待用户输入。带有浏览按钮的第一个窗口打开,程序继续执行,并在没有选择任何文件的情况下以错误告终。在提供用户输入之前,如何停止执行? 在一个论坛中,有人建议使用浏览器的showOpenDialog()方法,但这会直接打开一个浏览窗口,而我想让用户点击浏览按钮 我的代码在下面等待用户输入Java Swing,java,swing,Java,Swing,我正在使用JavaSwing创建一个非常基本的UI。当我运行该程序时,将打开一个窗口,其中包含一条消息和一个浏览按钮(使用frame和JButtons)。单击浏览按钮,将打开另一个窗口以导航到该文件。我通过在Browse按钮的click事件上调用FileChooser实现了这一点。但是,我的程序不等待用户输入。带有浏览按钮的第一个窗口打开,程序继续执行,并在没有选择任何文件的情况下以错误告终。在提供用户输入之前,如何停止执行? 在一个论坛中,有人建议使用浏览器的showOpenDialog()方
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设置为在其“初始化”结束时可见。您需要在startup类的main()方法中执行此操作。你的在哪里 (创建人:Nam Ha Minh)作为Java组件应用于JFrame,以便在GUI开发中节省一点时间。我个人只会在JButtonActionPerformed事件中直接使用JFileChooser。如果您正确地遵循了说明,那么您会发现您需要一个只有意义的main()方法。您的应用程序启动类应该是这样的:
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的工作)当然假设您已经将JFilePicker和FileTypeFilter类文件应用于您的项目。没有它们,上述代码将无法工作