我是Java新手。我的程序应该执行以下操作:
使用文件浏览器,它将找到txt文件,然后使用scanner
实用程序将其导入程序。然后,它会将文本内容输出到文本窗格中。
我设法编写扫描程序代码,读取txt文件并将结果输出到控制台,我还创建了打开文件浏览器的界面,找到文件,并将文件路径作为字符串。
问题是我无法将文本输出到文本窗格中。
代码:
public FileChoosing() throws FileNotFoundException {
JFileChooser fileChooser = new JFileChooser();fc = new JFrame();
fc.setBounds(100, 100, 800, 500);
fc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//fileChooser.setBounds(5, 11, 753, 243);
fc.getContentPane().add(fileChooser);
fc.getContentPane().setLayout(null);
JLabel lblFileName = new JLabel("New label");
lblFileName.setFont(new Font("Tahoma", Font.PLAIN, 17));
lblFileName.setBounds(10, 25, 764, 30);
fc.getContentPane().add(lblFileName);
JLabel lblFilePath = new JLabel("File Path");
lblFilePath.setBounds(10, 11, 764, 14);
fc.getContentPane().add(lblFilePath);
JTextArea jtextArea = new JTextArea();
jtextArea.setBounds(20, 66, 618, 329);
fc.getContentPane().add(jtextArea);
final JFileChooser fc= new JFileChooser();
int response = fc.showOpenDialog(fc);
if (response == JFileChooser.APPROVE_OPTION) {
lblFileName.setText(fc.getSelectedFile().toString());
String fp = lblFileName.getText();
File textFile = new File(fp);
Scanner in = new Scanner (textFile);
while(in.hasNextLine()){
String line =in.nextLine();
//System.out.println (line);
jtextArea.setText(line);
}
in.close();
}
文件定位器
结果应该显示在第二个窗口中:
答案 0 :(得分:1)
setText
将使用您传入其中的参数覆盖文本区域的内容。
如果要将文件内容加载到JTextArea中,则必须在使用setText之前构建字符串。
StringBuilder textBuilder = new StringBuilder();
while(in.hasNextLine()){
String line = in.nextLine();
textBuilder.append(line);
textBuilder.append(System.lineSeparator()); // nextLine doesn't return the line separator
}
jtextArea.setText(textBuilder.getString());
答案 1 :(得分:0)
在java中,字符串是不可变的。问题是你总是覆盖行变量String line =in.nextLine();
,最后只显示最后一行。
一种方法是String Builder:
StringBuilder sb = new StringBuilder();
while(in.hasNextLine()){
String line =in.nextLine();
sb.append(line).append("\n");
//System.out.println (line);
}
jtextArea.setText(sb.toString());