|
|
1
1
问得好。这不是特定于Swing,而是一个关于模型和视图之间差异的哲学问题。 一般来说,将对象转换为文本是模型的工作还是视图的工作?我的纯粹主义者认为实际上你需要一个视图层次结构——一个是将对象模型转换为文本,另一个是显示文本。您甚至可能需要两个以上的对象-例如,对象到文本、文本到文档结构、文档结构到HTML,然后CSS呈现给用户。 然而,实用主义者说,这可能变得太难记住和维持。因此,在您的情况下,我建议:考虑一下从模型中提取非文本数据的可能性有多大。如果不太可能,则将等效的convertValueToText放入模型中。 否则,允许组件使用渲染器(如果给定了渲染器),或者获取对象值并在内部将其转换为文本。 这允许最大的灵活性,并且可能使API的用户觉得事情最自然。我相信这是JTable模型,虽然我已经很久没有使用Swing了。 |
|
|
2
0
afaik jlist和jtree都不需要渲染器渲染文本。渲染器将传递数据对象并返回一个jcomponent,该jcomponent将定位为树/列表本身的子级,然后进行渲染。
|
|
|
3
0
如果必须编写自己的组件,请尽可能简单地编写。在很多情况下,如果您需要自定义渲染器,那么您不关心按组件或模型进行解释。模型保存您的数据。在这种情况下,也是定制的。从我的观点来看,好的选择是基于第一选择。提供实现abstractrenderer的defaultrenderer,并在其中添加所有方法,如totex(object o)等。然后让我决定是使用默认功能还是自己编写。您真的需要自定义组件吗?要使它正确工作,需要做很多工作。这个部件值这么多钱吗? |
|
|
Jörg · 如何更改多行JButton中的行距 10 月前 |
|
|
Clive Galway · 将摆动元件包装在面板顶部 1 年前 |
|
|
AlexHomeBrew · 如何将图像放在左上角的滚动窗格中 1 年前 |
|
|
Vithor Roder · Java CellEditor 1 年前 |
|
|
Dromlius · JPanel透支重叠的JComcoBox 1 年前 |