以下代码用于根据所选日期使用可用时间填充组合框。
但由于某种原因,组合框正在存储数据示例的内存地址:
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());
}
答案 0 :(得分:7)
首先,将其更改为:
// add the Object, rather than the String representation.
cmbNewResTimes.addItem(times.getTimeAt(pos1));
然后设置渲染器,请参阅:
JComboBox.setRenderer(ListCellRenderer)
答案 1 :(得分:2)
这意味着Restaurant.Time
不会覆盖toString()
方法,因此会使用Object
提供的默认实现。
如果您希望输出看起来不同,则需要覆盖Restaurant.Time.toString()
。