【问题标题】:Struggling with the append method for JTextArea挣扎于 JTextArea 的 append 方法
【发布时间】:2014-12-03 18:32:06
【问题描述】:

这是我正在努力解决的代码。它拒绝用新文本修改 JTextArea。我创建窗口并将其设置为在项目的主要功能中可见。 先谢谢了。

编辑: 通过拒绝,我的意思是 JTextArea 根本不会显示文本。它只是空着。我没有收到错误或异常。这一切都是合乎逻辑的。

class Window extends JFrame{

protected JTextArea text;

public Window() {

    setTitle("Create a list of names");
    setSize(500,400);
    Container containerPane = getContentPane();
    JPanel jp = new JPanel();

    text = new JTextArea(10,50);
    text.setPreferredSize(new Dimension(256,256) );
    text.setEditable(false);

    JScrollPane scrollText = new JScrollPane(text);
    scrollText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    jp.add(scrollText);

    containerPane.add(jp, BorderLayout.CENTER);

    text.append("Test");

}

public static void main(String[] args) {
      Window w = new Window();
      w.setVisible(true);
}

}

【问题讨论】:

  • 拒绝是什么意思?它是否指向任何错误或异常?
  • 发布的代码对我来说看起来很合理。发布您的SSCCE 来证明问题。您当前的代码不可编译或可执行,因为 main() 方法中有。另外,不要使用 setPreferedSize()。每个组件将确定自己的首选大小,布局管理器将使用此信息来正确定位/调整组件的大小。
  • 对不起。通过拒绝,我的意思是 JTextArea 根本不会显示文本。它只是空着。我没有得到错误或例外。这一切都是合乎逻辑的。
  • 我假设你确定 text.append 正在被调用?也就是说,你的System.out.println实际上是在打印你期望的文本字段数据?
  • @ChrisChevalier 请您发布一个MCVE(也称为 camickr 所说的 SSCCE)来证明这个问题? IE。创建一个示例程序,我们可以复制粘贴,编译并查看与您相同的错误,这样我们就更有能力为您提供帮助。

标签: java swing jtextarea


【解决方案1】:

50 的列宽大于框架的宽度,因此添加的文本显示在屏幕外。减小其值以适应父窗口

textArea = new JTextArea(10, 35);

不要使用setPrerredSize。让布局管理器完成其工作,并在添加所有组件后调用pack

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 2014-08-30
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2015-08-24
    • 2021-08-05
    • 2012-01-06
    • 2012-12-29
    相关资源
    最近更新 更多