Append() 不适用于 JTextArea 元素
Append() doesn't work on JTextArea element
我想创建图形控制台,它将向用户提供有关程序当前状态的信息。我计划为其使用 JTextArea,但我对 append() 方法有疑问。即使在 main class 中使用它之后,我仍然有空的 JTextArea。我做错了什么?
这里是控制台的gui代码:
package com.meh;
import javax.swing.*;
public class Controller extends JFrame {
public JPanel ControlPanel;
public JTextArea Log;
static void setView() {
JFrame frame = new JFrame("Controller");
frame.setContentPane(new Controller().ControlPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
这是主要代码 class:
package com.meh;
public class Main {
public static void main(String[] args) {
Controller controller = new Controller();
controller.setView();
controller.Log.append("Hello");
}
}
如果您查找 jTextArea
追加方法,您会看到:
Appends the given text to the end of the document
但是,如果 String
为空或 null
,它不会执行任何操作。
您可以根据自己的情况使用 setText()
。
如果调用 getText()
是否会返回新的字符串值?如果是这样,您可能需要在更改文本后在 controller
and/or controller.Log
上调用 repaint() and/or revalidate()。
如我所见,您永远不会初始化 'ControlPanel',它将始终为 null,因此您无法对其进行任何操作。
我想创建图形控制台,它将向用户提供有关程序当前状态的信息。我计划为其使用 JTextArea,但我对 append() 方法有疑问。即使在 main class 中使用它之后,我仍然有空的 JTextArea。我做错了什么?
这里是控制台的gui代码:
package com.meh;
import javax.swing.*;
public class Controller extends JFrame {
public JPanel ControlPanel;
public JTextArea Log;
static void setView() {
JFrame frame = new JFrame("Controller");
frame.setContentPane(new Controller().ControlPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
这是主要代码 class:
package com.meh;
public class Main {
public static void main(String[] args) {
Controller controller = new Controller();
controller.setView();
controller.Log.append("Hello");
}
}
如果您查找 jTextArea
追加方法,您会看到:
Appends the given text to the end of the document
但是,如果 String
为空或 null
,它不会执行任何操作。
您可以根据自己的情况使用 setText()
。
如果调用 getText()
是否会返回新的字符串值?如果是这样,您可能需要在更改文本后在 controller
and/or controller.Log
上调用 repaint() and/or revalidate()。
如我所见,您永远不会初始化 'ControlPanel',它将始终为 null,因此您无法对其进行任何操作。