public void colortemperatureJSliderStateChanged(ChangeEvent event) {
fahrenheitdegree = colortemperatureJSlider.getValue();
fahrenheitJPanel.setBounds(100,270, fahrenheitdegree, 20);
celsiusdegree = (fahrenheitdegree - 32.0)*5.0/9.0;
celsiusJPanel.setBounds(100,220,celsiusdegree, 20);
}// end of public void colortemperatureJSliderStateChanged..
我的教授希望两个变量(摄氏和华氏)都是双倍的 我为celsiusdegree设置了double的声明;和华氏度;
不知何故,编译在JPanel.setBounds(xxx,xxx,variable,xx)的两行上发现了两个错误;因为它是“不兼容的类型:从double到int的可能有损转换。”
当我尝试将变量更改为int时。错误是celsiusdegree的公式不会识别int。那么如何让它适用于双变量呢?
答案 0 :(得分:1)
要使这个工作为double,你应该将变量保持为double并告诉编译器无论如何都要执行有损会话。
所以:
celsiusJPanel.setBounds(100, 220, (int) celsiusdegree, 20);
应该可以正常工作。
可以在Extracting Hyperlinks From Excel (.xlsx) with Python以及"Why can int/byte/short/long be converted to float/double without typecasting but vice-versa not possible"
中找到更多信息答案 1 :(得分:0)
JPanel的setBounds将面板的右上角设置为第一个和第二个参数作为x,y坐标。第三个和第四个参数分别指定宽度和高度。您需要创建标签或文本字段以显示您的值。
答案 2 :(得分:0)
我建议将celsiusdegree
和fahrenheitdegree
保留在Double
中,然后将setBounds用作以下内容:
celsiusJPanel.setBounds(100, 220, celsiusdegree.intValue(), 20);
因为你不能 cast Double to int。