java如何从文件中读入并在GUI中的文本字段/标签中显示?
我有一个文本文件,里面有一个名字列表。我试图创建一个GUI,然后将文件中的文本读入GUI,并将其显示在textfield/label/anything中。我可以创建GUI并读入代码,但不知道如何在GUI中显示读入文本。下面是我的代码。当我运行时,它会显示GUI,但不会显示读入文本
public class ASSIGNMENT {
private JLabel lbl1;
private JTextField txt1;
private JPanel panel;
private JFrame frame;
public ASSIGNMENT(){
createGUI();
addLabels();
frame.add(panel);
frame.setVisible(true);
}
public void createGUI(){
frame = new JFrame();
frame.setTitle("Books");
frame.setSize(730, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(null);
panel.setBounds(10, 10, 10, 10);
panel.setBorder(BorderFactory.createLineBorder (Color.decode("#1854A2"), 2));
frame.add(panel);
}
public void addLabels(){
lbl1 = new JLabel(" ");
lbl1.setBounds(700, 450, 120, 25);
lbl1.setForeground(Color.white);
panel.add(lbl1);
}
public void books() throws IOException{
String result = "books2.txt";
String line;
LineNumberReader lnr = new LineNumberReader(new FileReader(new File("books2.txt")));
while((line = lnr.readLine()) != null){
result += line;
}
JLabel label1 = new JLabel(result);
panel.add(label1);
}
public static void main(String[] args) throws Exception{
new ASSIGNMENT();
}
}
# 1 楼答案
你好,这是你的代码。基本上需要正确设置布局管理器。你有两个选择选项一是设置NULL和布局管理器。在这种情况下,需要使用setBounds()定位所有组件
第二个选项是使用一个更加用户友好的布局管理器,它不需要像GridBagLayout这样的功能。下面,你可以看到你的代码为GridBagLayout进行了修改。我重复一遍,让null作为管理者是可能的,但是你需要在setBounds的帮助下用坐标来定位元素