我是 java 新手,正在研究 java swing GUI。最近看了一篇文章: Centering Text in a JTextArea or JTextPane - Horizontal Text Alignment
里面的解决方案效果很好,但我有一些概念性的问题要问。
我在oracle网站上阅读了接口和类的介绍。它表示接口包含一组空体方法,那么实现该接口的类需要声明接口中提到的所有方法才能成功编译。
我的问题来了:看完文档,我知道StyledDocument是一个接口,但是下面的代码是什么意思呢?
StyledDocument doc = textPane.getStyledDocument();
我的解释是,我猜一个 JTextPane 在内部实现了 StyledDocument 以便这行代码接收现有的 StyledDocument (但它不应该被称为实例,因为我们无法创建接口实例,我应该如何描述它? ) . 如果这是真的,那么 JTextPane 应该在 StyledDocument 接口中定义所有方法。
我在上面的段落中正确吗?
然后,我尽量不写这两行代码:
StyledDocument doc = textPane.getStyledDocument();
doc.setParagraphAttributes(0, doc.getLength(), center, false);
但是我直接用了:
textPane.setParagraphAttributes(center, false);
这也很有效。
那么,这两种实现之间有什么区别吗?
我的代码是这样做的好习惯吗?
非常感谢您的帮助!