【发布时间】:2025-12-06 08:00:02
【问题描述】:
我有一个JFrame,其中包含 3 个JPanels(每个都在一个单独的类中)。第一个JPanel 包含两个JTextFields,我分别在其中写入要读取的文件的名称和要满足的条件。这并没有真正影响我的问题,所以让我们继续。
第二个JPanel 有一个JTextArea。
第三个JPanel 有两个JButtons(加载、排序),它们应该从第一个JPanel 加载满足条件的条目列表,然后根据一些规则(分别)重新组织它们。
问题:
好吧,第一个类是 JFrame 类,我只是在其中做窗口的标准外观。
第二个类是第一个JPanel 和两个JTextFields。
我不会给出这个的代码,因为第二个JPanel 代码更短并且有同样的问题,所以我想同样的解决方案也会适用。
第三类包含JTextArea,我应该在其中显示文本文件中的某些条目。
代码:
public class SecondPanel extends JPanel {
JPanel panel;
JTextArea lista;
public SecondPanel() {
panel = new JPanel();
list = new JTextArea("List");
list.setPreferredSize(new Dimension(200, 150));
this.add(list);
}
}
继续,第四个类包含Jbuttons 和ActionListener(Button listener)。好的,这是按钮侦听器类的部分代码
代码:
private class ButtonListener implements ActionListener {
SecondPanel secondPanel = new SecondPanel();
FirstPanel firstPanel = new FirstPanel();
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Load")) {
//calls method that loads data from the text in a firstPanel field
loadData(firstPanel.theFile.getText());
for(int i = 0; i< students.length; i++) {
if(students[i]!=null) {
// doesn't write anything tried with .setText etc.
secondPanel.list.append(students[i]+"\n");
}
}
}
}
}
所以当我输入为文件路径指定的JTextField 时,程序不会得到文本。当我在代码中手动执行此操作时,它不会将更改写入窗口(JTextArea)上的列表。但是当我System.out.print 到控制台时,它会打印更改并正确列出条目以及我所做的任何setText 更改。它只是不会在窗口中写入或读取..
我该怎么办?
【问题讨论】:
标签: java jframe jpanel jbutton