1

我有一个填充字符串列表的 JList

String[] values = new String[] {"David Pickwell", "-", "Tico", "-", "Jack Wilshere", "-","Nick Johanson"};

多年来,我一直使用这种方法通过自定义 ListCellRender 将 JSeparator 添加到 GUI。因此,它将检查当前字符串是否等于“-”,它将呈现一个分隔符。

public Component getListCellRendererComponent(JList<? extends Object> list, Object value,
    int index, boolean isSelected, boolean cellHasFocus) {

  ...  

  String str = (value == null) ? "" : value.toString();
  if (SEPARATOR.equals(str)) { // What I am talking about
    return separator;
  }

  ...

  return this;
}

我必须说我不喜欢它。它可以工作,但稍后需要更多的工作来检查字符串以将请求发送到……其他地方。所以,我想做:

String[] values = new String[] {"David Pickwell", "Tico", "Jack Wilshere", "Nick Johanson"};

在每个项目之后,都会出现一个新的分隔符。

我怎么能做到?

4

1 回答 1

1

请参阅这些帖子。似乎其他人也在使用自定义 ListCellRender,所以也许这就是要走的路。不过,您只需要编写一次渲染的内容。因此,如果您过去编写过它,只需参数化该类并重用它。在使用 Swing 或任何其他 GUI 工具包时,我通常发现有必要构建一个实用程序库。

具有行分隔的 Java 列表 将 JSeparator 添加到 DefaultListModel

于 2013-12-16T05:17:12.737 回答