首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StyledDocument与JTextPane的关系及接口的合理使用问题

StyledDocument与JTextPane的关系及接口的合理使用问题
EN

Stack Overflow用户
提问于 2015-08-05 04:28:59
回答 1查看 102关注 0票数 0

我对java很陌生,并且正在开发。最近我读了一篇文章:在JTextArea或JTextPane中以文本为中心-水平文本对齐

内部的解决方案非常有效,但我有一些概念性的问题要问。

我在甲骨文网站上读到了界面和类的介绍。它说,接口包含一组空体的方法,那么实现该接口的类需要声明接口中提到的所有方法,才能成功地实现。

下面是我的问题:在阅读完文档之后,我知道StyledDocument是一个接口,但是下面的代码意味着什么呢?

代码语言:javascript
复制
StyledDocument doc = textPane.getStyledDocument();

我的解释是,我猜想JTextPane在内部实现了StyledDocument,因此这一行代码将接收现有的StyledDocument (,但不应该被称为实例,因为我们无法创建接口实例,我应该如何描述它呢?)。如果这是真的,那么JTextPane应该在StyledDocument接口中定义所有方法。

,我在上面的段落中是正确的吗?

然后,我尽量不写这两行代码:

代码语言:javascript
复制
StyledDocument doc = textPane.getStyledDocument();
doc.setParagraphAttributes(0, doc.getLength(), center, false);

但我直接用:

代码语言:javascript
复制
textPane.setParagraphAttributes(center, false);

这件事也很完美。

那么,这两个实现之间有什么区别吗?

我的代码是这样做的良好实践吗?

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-05 04:37:47

我认为您被多态的概念卡住了,先来看看多态上的线索。

我的解释是,我猜想JTextPane在内部实现了StyledDocument,因此这一行代码将接收现有的StyledDocument (但不应该被称为实例,因为我们无法创建接口实例,我应该如何描述它?)如果这是真的,那么JTextPane应该在StyledDocument接口中定义所有方法。

不是的。getStyledDocument方法返回一个实现StyledDocument接口的对象。JTextPane不直接实现此功能,但将需求委托给实现StyledDocument接口的对象的实例。

它们一起提供了显示样式文本的方法。这是模型-视图-控制器范式的一个概念,其中非可视功能(模型或StyledDocument)与视图( JTextPane)分离。

然后,我尽量不写这两行代码: StyledDocument doc = textPane.getStyledDocument();doc.setParagraphAttributes(0,doc.getLength(),中间,false); 但我直接用: TextPane.setParagraphAttributes(中间,假); 这件事也很完美。 那么,这两个实现之间有什么区别吗?

是也不是。setParagraphAttributes将该功能委托给StyledDocument,如下从JTextPane获取的代码片段所示:

代码语言:javascript
复制
public void setParagraphAttributes(AttributeSet attr, boolean replace) {
    int p0 = getSelectionStart();
    int p1 = getSelectionEnd();
    StyledDocument doc = getStyledDocument();
    doc.setParagraphAttributes(p0, p1 - p0, attr, replace);
}

它只是一种方便的方法,可以让你的生活变得简单一些。

我的代码是这样做的良好实践吗?

我认为使用提供的功能来实现您的目标是没有问题的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31823467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档