有人可以告诉我如何从jSpinner获取确切的值? 以下是用户选择时间时我的jSpinner的显示方式:
但是,当我将jSpinner值传递给textfield时,它显示如下:
这是我的代码:
timeout1 = spnrTOH1.getValue()+":"+spnrTOM1.getValue()+" "+spnrTOA1.getValue();
这是我的jSpinner模型:
非常感谢任何帮助。提前致谢! 对不起,我的问题似乎很愚蠢。新手在这里。 :)
答案 0 :(得分:2)
它与微调器及其模型无关。
您需要将字符串格式化为前导零。由于spiner的渲染器格式化过程,精确值为00
时,微调器显示0
。渲染器是一个组件,负责显示模型所持有的GUI值。例如。自定义渲染器可以将整数显示为罗马数字。
要格式化输出,只需使用String#format
方法:
timeout1 = String.format("%02d:%02d %s",spnrTOH1.getValue(),spnrTOM1.getValue(),spnrTOA1.getValue());
这样,您将显示整数值为2位数字,前导为0。
答案 1 :(得分:1)
将此功能添加到您的程序中..
public String getString(Object object) {
int number = Integer.parseInt(object.toString().trim());
if(number < 10) {
return "0" + number;
}
return String.valueOf(number);
}
并在必须将值设置为文本字段(如
)时调用此方法timeout1 = getString(spnrTOH1.getValue())+":"+getString(spnrTOM1.getValue())+" "+spnrTOA1.getValue();