如何向 JTextPane 添加方法

How to add method to JTextPane

我想用自定义方法创建一个 JEditorPane。
一种将新的彩色文本附加到窗格的方法。

代码:

console = new JTextPane() {
    public void append() {
        //*****
    }
};
console.append();

但是 eclipse 说这个方法从未被使用过,当我尝试调用它时会抛出一个错误...我做错了什么吗?

将方法添加到对象将使它更有效率... 感谢帮手!

我想你想要的是创建新的 class 来扩展 JTextPane 并在其中添加你的方法。

public class MyTextPane extends JTextPane {

  public void append() {
    // your code 
  }
}

您无法调用 append(),因为 console 依赖于 JTextPane 类型,而不是您定义 append().
的匿名 class

要在匿名 class 之外调用 append(),您必须创建 JTextPane 的子 class。
如果有意义,您可以将其定义为当前 class 的私有静态 class 成员:

...
private static class MyTextPane extends JTextPane {

   public void append() {
    // your code
  }
}
...
MyTextPane myTextPane = new MyTextPane();
myTextPane.append();

显然你将 console 声明为 JTextPane

在作业中,您使用您的新方法创建了一个 "anonymous inner class" 扩展 JTextPane

但是,由于 console 被声明为 JTextPane,它不知道您的方法。

尝试这样的事情:

private MyAppendingTextPane console = myAppendingTextPane();

public static class MyAppendingTextPane extends JTextPane {
  public void append(String line) { ... }
}