我有一个 JComboBox
用作 JTable
中的编辑器。在图片中,您可以在标记为 Produs
的列中看到它们。我想在网格单元格中使用独立的 JComboBox
设计,尤其是组合框的右侧部分,网格单元格中缺少三角形,因此用户会知道网格单元是组合框,无需单击其中之一。如何将 JComboBox
(IsBackFlush
) 的设计应用到网格中的 JComboBoxes
?
本质上,我如何根据comboBox1
的设计来设计comboBox2
?谢谢。
最佳答案
从这个完整的 example 开始工作作为通用引用框架,请注意 ITEM_COL
列中未选定单元格的出现是由于 default renderer 造成的.独立 JComboBox
的典型箭头按钮仅在调用单元格的编辑器时出现,例如通过单击单元格或在选择单元格时按 Space。您可以在自定义渲染器中添加三角形:
final JComboBox combo = new JComboBox(items);
TableColumn col = table.getColumnModel().getColumn(ITEM_COL);
col.setCellRenderer(new DefaultTableCellRenderer(){
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
label.setIcon(UIManager.getIcon("Table.descendingSortIcon"));
return label;
}
});
附录:@aterai 提供了一个更完整的示例 here .
关于java - 如何让JComboBox 表格编辑器具有普通JComboBox 的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342917/