我尝试创建一个 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;
}
}
'''
我找到了解决方案:
重新验证并重新绘制就成功了