gpt4 book ai didi

Java JList 不需要的 toString() 转换

转载 作者:行者123 更新时间:2023-11-30 06:31:43 27 4
gpt4 key购买 nike

我扩展的 JList 允许用户拖放重新排序(使用 Reorder a JList with Drag-and-DropUse drag and drop to reorder a list )但它给了我一个奇怪的结果。而不是给我我的习惯 JComponent , 它给了我 .toString()它的值(value)。我设置了我的自定义模型 JListDefaultListModel<JComponent>认为它会起作用但它没有。

最佳答案

您需要为要呈现的对象创建自定义 CellRenderer。默认情况下,JList 将显示组件的 toString 值(因为 DefaultListCellRenderer 扩展了 JLabel)。

class MyRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component c = super.getListCellRendererComponent(...);
setText(getValue(value)); // where getValue is some method you implement that gets the text you want to render for the component
return c;
}

如果您实际上不想呈现字符串,请创建一个 CellRenderer 的实现,它返回您要呈现的组件。

关于Java JList 不需要的 toString() 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560474/

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