将字符串转换为双JAVA
在将字符串转换为双JAVA,java,string,double,jtextfield,jcombobox,Java,String,Double,Jtextfield,Jcombobox,在组合框中,我设置jtextfield,第二行从textfield中提取字符串,并尝试将其转换为双精度 错误如下: private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: //9 txtTot.s
组合框
中,我设置jtextfield
,第二行从textfield
中提取字符串
,并尝试将其转换为双精度
错误如下:
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//9
txtTot.setText(jComboBox1.getSelectedItem().toString());
tot= Double.parseDouble(txtTot.getText());
CMB= (Double)jComboBox1.getSelectedItem();
Total2=tot+CMB;
txtTot.setText(Double.toString(Total2));
}
尝试将txtTot.getText()打印到控制台,并检查其十进制格式是否正确。格式不正确可能是错误的原因。在我看来,您似乎是在从组合框中选择一个值,然后尝试将它们相加以创建一个总计,每次从组合框中选择一个新值时,总计都会被更新 这似乎对我有用,注意,我已经去掉了第一行,因为它干扰了现有的总数
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Double
at test.Test.jComboBox1ActionPerformed(Test.java:392)
at test.Test.access$600(Test.java:18)
at test.Test$7.actionPerformed(Test.java:134)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:586)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622)
该代码不会导致该异常。上次更改后是否重新编译?Test.java的第392行是什么?它是组合框的开始:private void jcombox1actionperformed(java.awt.event.ActionEvent evt){您必须提供一个完整的代码来生成异常。如果您的getselectedItem是一个数值,它是double:5.00
tot= Double.parseDouble(txtTot.getText());
CMB = Double.parseDouble((String) jComboBox1.getSelectedItem());
Total2=tot+CMB;
txtTot.setText(Double.toString(Total2));