下面的代码旨在根据选择的日期在组合框中填充可用时间。

但是由于某种原因,组合框正在存储数据示例的内存地址:

Restaurant.Time@1a28362
Restaurant.Time@5fcf29
...


我知道它的时机正确。但是,我如何实际打印出实际的项目?

TimeList times = dbConnector.selectTimes(lblDay.getText());//lblDay stores the date from the jCalendar button
cmbNewResTimes.removeAllItems();
for (int pos1 = 0; pos1 < times.size(); pos1++) {
    cmbNewResTimes.addItem(times.getTimeAt(pos1).toString());
}

最佳答案

添加对象实例

首先,将其更改为:

// add the Object, rather than the String representation.
cmbNewResTimes.addItem(times.getTimeAt(pos1));


设置渲染器

然后设置渲染器,请参见:


JComboBox.setRenderer(ListCellRenderer)
How to Use Combo Boxes: Providing a Custom Renderer
在有关font rendering in a combo.的答案中可以看到一个琐碎(但很漂亮)的示例

09-11 21:00