![]() |
1
1
问得好。这不是特定于Swing,而是一个关于模型和视图之间差异的哲学问题。 一般来说,将对象转换为文本是模型的工作还是视图的工作?我的纯粹主义者认为实际上你需要一个视图层次结构——一个是将对象模型转换为文本,另一个是显示文本。您甚至可能需要两个以上的对象-例如,对象到文本、文本到文档结构、文档结构到HTML,然后CSS呈现给用户。 然而,实用主义者说,这可能变得太难记住和维持。因此,在您的情况下,我建议:考虑一下从模型中提取非文本数据的可能性有多大。如果不太可能,则将等效的convertValueToText放入模型中。 否则,允许组件使用渲染器(如果给定了渲染器),或者获取对象值并在内部将其转换为文本。 这允许最大的灵活性,并且可能使API的用户觉得事情最自然。我相信这是JTable模型,虽然我已经很久没有使用Swing了。 |
![]() |
2
0
afaik jlist和jtree都不需要渲染器渲染文本。渲染器将传递数据对象并返回一个jcomponent,该jcomponent将定位为树/列表本身的子级,然后进行渲染。
|
![]() |
3
0
如果必须编写自己的组件,请尽可能简单地编写。在很多情况下,如果您需要自定义渲染器,那么您不关心按组件或模型进行解释。模型保存您的数据。在这种情况下,也是定制的。从我的观点来看,好的选择是基于第一选择。提供实现abstractrenderer的defaultrenderer,并在其中添加所有方法,如totex(object o)等。然后让我决定是使用默认功能还是自己编写。您真的需要自定义组件吗?要使它正确工作,需要做很多工作。这个部件值这么多钱吗? |
|
user29759326 · 如何返回递归函数中的最后一个值? 6 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 6 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 6 月前 |
![]() |
rudraraj · java中未声明最终变量 6 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 6 月前 |