gpt4 book ai didi

java - JCombobox、编辑器和渲染器相关

转载 作者:行者123 更新时间:2023-12-01 16:08:49 24 4
gpt4 key购买 nike

作为 JCombobox ListCellRenderer,我有一个像这样的类:

class ZComboBoxRenderer extends JPanel implements ListCellRenderer{
private ZGrid grid;
public ZComboBoxRenderer(ZGrid grid) {
setLayout(new BorderLayout());
this.grid = grid;
add(new JScrollPane(grid), BorderLayout.CENTER);
}
public ZGrid getGrid(){
return grid;
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
grid.fetchSQL();
return this;
}
}

ZGrid 此处扩展了 JTable

作为 ListCellRendererComponent,我向 JCombobox 提供一个内部有 ZGrid 的 JPanel。问题是,在它的列表中,这个 ZGrid 正在正确绘制。但它也在 JCombobox 的编辑器内进行绘制。我上传了一张图片以更好地展示这一点。

有没有办法将编辑器与列表分开?

<小时/>

alt text http://img444.imageshack.us/img444/564/soex.jpg

最佳答案

据我了解,您正在为 JComboBox 实现一个自定义渲染器,尽管它正确地渲染了下拉列表的内容,但它完全弄乱了组合框的当前值。

我看到您可以选择两个选项:

  1. 您可以扩展 JComboBox 的 UI 组件并重写 paint 方法,以获取当前值 View 的网格的自定义表示。这将是一个非常快速的概念证明,但它会带来问题,因为您需要扩展您希望应用程序运行的每个 UI(金属、Windows、Mac 等)。

  2. 您可以滚动自己的下拉列表,并使其看起来像 JComboBox。作为 POC,这也不是那么困难,但这里的复杂性是处理影响组合框周围的选择和导航的不同键盘输入。

关于java - JCombobox、编辑器和渲染器相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1966637/

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