2013-11-21 37 views
1

好的,这就是我得到的。一切都完全有效,除了每当我去转换它,我的答案标签弹出0.0,所以我知道它至少解析双从某处。我只是不知道它是否从输入中获得用于将我的变量设置为我的标签的公式中的数字。解析来自JTextField的用户输入的问题

框架:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Prog8Frame extends JFrame { 
    private JLabel icon; 
    private JLabel temperLab; 
    private JLabel fahr; 
    private static JTextField input; 
    private JButton convert; 
    private JLabel answer; 
    private JLabel degC; 

    public Prog8Frame() { 
     super("Prog 8"); 
     setLayout (new FlowLayout()); 

     Icon thermometer = new ImageIcon(getClass().getResource("thermometer.png")); 
     icon = new JLabel(thermometer); 
     add(icon); 

     temperLab = new JLabel("Temperature"); 
     add(temperLab); 

     fahr = new JLabel("Fahrenheit"); 
     add(fahr); 

     input = new JTextField(7); 
     add(input); 

     convert = new JButton("Convert"); 
     add(convert); 
     convert.addActionListener(new ButtonHandler()); 

     answer = new JLabel(); 
     add(answer); 

     degC = new JLabel("degrees Celsius"); 
     add(degC); 
    } 
    private class ButtonHandler implements ActionListener { 
     public void actionPerformed(ActionEvent click) { 
      String strInput = input.getText(); 
      double fahren = Double.parseDouble(strInput); 
      double degCel = ((fahren - 32)*(5/9)); 
      answer.setText("" +degCel); 
     } 
    } 
} 

测试仪:

import javax.swing.JFrame; 

public class Prog8 { 

    public static void main(String[] args) { 
     Prog8Frame Prog8 = new Prog8Frame(); 
     Prog8.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Prog8.setSize(300, 300); 
     Prog8.setVisible(true); 

    } 

} 
+0

完全不同的事情,你应该明确地将一个在数(5/9)兼作((双)5/9) –

+2

这有绝对** **没有跟Eclipse和全部与核心Java有关。删除标签并在标题中提及。你不妨责怪你正在使用的电脑品牌。 –

回答

1

罪魁祸首是下面的等式。

double degCel = ((fahren - 32)*(5/9)); 

5/9将返回0。使用5.0/9。这将导致双重价值。

double degCel = ((fahren - 32)*(5.0/9)); 
1

这是做5/9正在被转换回int基本上相当于回到0

试着改变它.. 。

double degCel = ((fahren - 32)*(5d/9d)); 

改为。这将导致Java将结果保留为double

+0

完全固定它,非常感谢! – user3019682