2
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu("File");  
add(menubar,BorderLayout.NORTH); 
menubar.add(file);              
JMenuItem Open = new JMenuItem("OPEN...     Ctrl+O");
file.add(Open);
Open.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) { 
        Frame f = new Frame();
        FileDialog openf = new FileDialog(f, "Open");
        openf.setVisible(true);
    }
});

好吧,我尝试在互联网上使用很多示例来使打开按钮起作用,正如您所看到的那样,我已经进行了设计,但是我需要有关如何在单击文件对话框中的打开按钮时打开 .txt 文件的帮助。我该怎么做?如果有人能用几行实际有效的代码帮助我,我将不胜感激,因为我厌倦了从互联网上搜索错误生成代码。

在此处输入图像描述

4

1 回答 1

3

文档指出:

FileDialog 类显示一个对话框窗口,用户可以从中选择一个文件。

因为它是一个模态对话框,所以当应用程序调用它的 show 方法来显示对话框时,它会阻塞应用程序的其余部分,直到用户选择了一个文件。

因此,您可以在对话框中调用而不是调用.setVisible(true).show()然后您可以使用getFile()来获取选择的文件,或者如果您使用的是multipleMode ,则可以使用getFiles()

要读取文件,您可以使用:

public static String readFile(String path, Charset encoding) throws IOException {
  byte[] encoded = Files.readAllBytes(Paths.get(path));
  return encoding.decode(ByteBuffer.wrap(encoded)).toString();
}

yourComponent.setText(readFile(openf.getFile(), Charset.defaultCharset()));

(取自这个问题

于 2013-11-10T13:39:48.410 回答