下面的代码旨在根据选择的日期在组合框中填充可用时间。
但是由于某种原因,组合框正在存储数据示例的内存地址:
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.的答案中可以看到一个琐碎(但很漂亮)的示例