我有一个jcombobox,其中包含一个带有月份的enum类和一个jtextfield(txthours),用于输入每个月完成的工时量。
我有另一个jlabel,它持有下面所有月份的总值
double hours = Double.parseDouble(txtHours.getText());
yearHours += hours;
yLabel.setText("Hours this year: " + yearHours);
如何保存和更新特定月份的小时数,以便根据从组合框中选择的月份在运行时更新标签本身?
if (e.getSource() == cmbMonths){
mLabel.setText("Hours for " + cmbMonths.getSelectedItem() +": " + monthHours);
}
1条答案
按热度按时间mf98qq941#
回答你的问题,即
如何保存和更新特定月份的小时数
我会用一张Map
Map
关键字是月份,值是该月份的总工作小时数。在Java1.8中添加的日期时间api中,有一个月枚举,因此我将使用它作为Map
钥匙。而不是使用
JTextField
要输入工作时间,我将使用jspinner。为了更新总工作时间,我将向
JSpinner
因此,每次更改其值时JLabel
显示总工时将得到更新,以便显示新的总工时。剩下的唯一一件事就是将actionlistener添加到
JComboBox
这样,每当用户选择特定月份时,它都会显示输入的总工时值。这是一个最小的,可复制的例子。
注意这个方法
stateChanged
,在上面的代码中,使用了同样在Java1.8中添加的流api下面是运行应用程序的屏幕截图。