gpt4 book ai didi

java - 是否可以为 JComboBox 中的选项提供类似表格的显示?

转载 作者:行者123 更新时间:2023-11-30 06:35:01 25 4
gpt4 key购买 nike

本质上,我想在 JComboBox 中显示具有一个或两个与之关联的附加信息变量的选项,并且我想以一种更结构化的方式向用户显示该信息,而不仅仅是例如追加它们。

换句话说,我希望 JComboBox 中的选项如下所示:

John Smith     Male    01/01/1980
Jane Harrison Female 01/01/1980

我不想要的是简单地附加所有信息,使其看起来像这样:

John Smith (Male, 01/01/1980)
Jane Harrison (Female, 01/01/1980)

如果这是重复的,我深表歉意,但在我看来,大多数带有关键字 JComboBox 和 table 的问题都与“相反”问题有关,即将 JComboBox 放入表中。

最佳答案

我最终寻求了一个完全不同的解决方案,但认为这个答案最终可能会让某人受益。

您基本上可以使用 ListCellRenderer 自行设计 JComboBox 中选项的外观。请参阅这个粗略的示例:

String[][] ar = {{"aasdf","ff"},{"fd","werewfewf"}};
JComboBox<String[]> box = new JComboBox<>(ar);
box.setRenderer(new TableListCellRenderer());
getContentPane().add(box,BorderLayout.NORTH); // You can add it wherever you want

这是TableListCellRenderer的类:

class TableListCellRenderer
implements ListCellRenderer<String[]>
{
@Override
public Component getListCellRendererComponent(JList<? extends String[]> list,
String[] value,
int index,
boolean isSelected,
boolean cellHasFocus) {
JPanel ret = new JPanel(new GridLayout(1,2));
ret.add(new JLabel(value[0]));
ret.add(new JLabel(value[1]));
return ret;
}
}

请参阅下面的屏幕截图。您可以看到,在实际使用它之前需要解决一些缺陷,但大多数缺陷可能可以通过调整 JPanel 的布局来解决。

Screenshot of example

有关更多信息,请参阅the tutorial page on the JComboBoxthe javadoc on the ListCellRenderer interface (其中包含一个有用的简单示例)。

关于java - 是否可以为 JComboBox 中的选项提供类似表格的显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45355331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com