0

我想在我的 Java 应用程序中创建一个控制台(JTextPane)来显示我的应用程序在做什么。我使用不同的方法尝试了很多次但失败了......这是我的代码的一部分。

主类

private final Form form;

println("Downloading files...");

public void println(String line)
{
        System.out.println(line);
        form.getConsole().print(line);
}

表格(GUI)

private TabConsole console;

tabbedPane.addTab("Console", console);

public TabConsole getConsole()
{
        return console;
}

选项卡控制台

public void print(final String line) {
        if (!SwingUtilities.isEventDispatchThread()) {
          SwingUtilities.invokeLater(new Runnable()
          {
            public void run() {
              TabConsole.this.print(line);
            }
          });
          return;
        }

        Document document = this.console.getDocument();
        JScrollBar scrollBar = getVerticalScrollBar();
        boolean shouldScroll = false;

        if (getViewport().getView() == this.console) {
          shouldScroll = scrollBar.getValue() + scrollBar.getSize().getHeight() + MONOSPACED.getSize() * 4 > scrollBar.getMaximum();
        }
        try
        {
          document.insertString(document.getLength(), line, null);
        } catch (BadLocationException localBadLocationException) {
        }
        if (shouldScroll)
          scrollBar.setValue(2147483647);
      }

我的代码有什么问题吗?感谢您的帮助。

4

1 回答 1

0

尽管代码看起来正确,但将 BadLocationException 作为 RuntimeException 重新抛出。你遇到了什么错误?

如果文本未显示,您可能正在更新错误的文档。确保您正在更新您的 TextArea 使用的文档,或者您用于显示内容的任何内容。

于 2013-09-24T15:44:45.647 回答