我是编程新手,并被要求创建一个GUI,从文本字段中读取文本文件的名称并显示在textarea中。这就是我到目前为止所完成的事情。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class FileLoader extends JFrame implements ActionListener {
private final LayoutManager layout;
private JButton loadButton;
private JTextField filename;
private JTextArea display;
public FileLoader()
{
layout = new FlowLayout();
setLayout(layout);
JFrame frame = new JFrame();
JPanel buttonPanel = new JPanel();
loadButton = new JButton("Load File");
filename = new JTextField(10);
buttonPanel.add(filename);
buttonPanel.add(loadButton);
display = new JTextArea(25, 50);
add(new JLabel("File Name: "));
add(filename);
add(new JScrollPane(display));
add(loadButton);
loadButton.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
try{
String file = filename.getText();
int filesize = file.length();
if (filesize>= 5 && filesize<= 10){
Scanner input = new Scanner(getClass().getResourceAsStream(file));
String DisTXT = " ";
while (input.hasNextLine()){
DisTXT = DisTXT + input.nextLine();
if (input.hasNextLine()){
DisTXT = DisTXT + "\n";
}
}
display.setText(DisTXT);
input.close();
}
else
{
if (filesize< 5){
display.setText("File NAME ERROR: NAME IS TOO SHORT");
}
else {
display.setText("File NAME ERROR: NAME IS TOO LONG");
}
}
}
catch (NullPointerException e) {
display.setText("File not found");
}
}
public static void main(String[] args) {
new FileLoader();
}
}
多次检查后,代码中的逻辑是有意义的(对我来说,如果你抓到我可能错过的东西请告诉我)唯一的问题是出于某种原因,当我去运行它时,没有任何反应。我很抱歉,如果这个问题有一个简单的解决方案,但我们只在GUI的第2天,我不太确定为什么会这样,有人可以解释一下吗?