将组合框渲染到 jtable 中

问题描述 投票:0回答:1

我尝试创建一个 Jtable,其中一列包含组合框。因此,我为该特殊列使用我自己的渲染器。但是打开我的表格后,该列中充满了文本“java.swingx ....”。一旦我调整图形用户界面的大小,这些框就会正确显示。我怎样才能在不调整图形用户界面大小的情况下获得它们?

public class MyWlWertRenderder extends DefaultTableCellRenderer {
JComboBox combo;

public MyWlWertRenderder(JComboBox combobox)
{
    combo = new JComboBox();
    for (int i=0; i<combobox.getItemCount(); i++)
    {
        combo.addItem(combobox.getItemAt(i));
    }
}

public Component getTableCellRendererComponent(JTable table, Object value,
                                               boolean isSelected, boolean hasFocus, int row, int column) {
    if (value instanceof WlWert) {
        WlWert wert = (WlWert) value;
        setText(wert.getLangform());
    }

    if (isSelected) {
        setBackground(table.getSelectionBackground());
    } else {
        setBackground(table.getSelectionForeground());
    }

    combo.setSelectedItem(value);

    return combo;
}

}

'''

java swing jtable jcombobox
1个回答
0
投票

我找到了解决方案:

重新验证并重新绘制就成功了

© www.soinside.com 2019 - 2024. All rights reserved.