2016-03-02 32 views
0

我需要转换多年的日子,这个错误阻止了我。 请帮忙..现在需要通过它。 错误:二元运算符“*”的操作数类型错误 错误:result = screen * 365; ^如何解决这个坏操作数

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

public class DaysOfYears extends JFrame implements ActionListener 
{ 
    JTextField screen = new JTextField(30); 
    JButton conBtn = new JButton("Convert"); 
    JLabel jb = new JLabel (""); 

    private double result; 


public DaysOfYears(){ 
super("Convert Your Years in Days"); 
setSize(400, 200); 
setLayout(new FlowLayout(FlowLayout.LEFT)); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    add(screen);  
    add(conBtn); 
    add(jb); 
    conBtn.addActionListener(this); 
    } 
    public void actionPerformed(ActionEvent e){ 

    result = screen * 365; 
    jb.setText(""+result); 
    } 


     public static void main (String[] args) { 
     DaysOfYears days = new DaysOfYears(); 
    days.show(true); 
    } 
    } 
+3

'screen'是'JTextField',你会如何建议的Java多了'JTextField' 365? – MadProgrammer

回答

0

JTextField将其内容保存为字符串。您需要将其转换为整数,除非您在JTextField内提供双数据类型的字符串表示形式。

尝试类似:

结果= Integer.valueOf(screen.getText())* 365;

+0

谢谢,这适用于我.. :) –

1

我想你想你的分析和JTextField文本值,那么执行你乘法。类似的,

result = Integer.parseInt(screen.getText()) * 365; 

请注意,闰年有366天。

-1

以下屏幕的JTextField一个对象,以便乘操作不会对objectJTextField型的你可以抓住这个对象的值转换成任何类型Number进行再尝试倍增。它会解决你的问题。

试试这个......

 result = Integer.parseInt(screen.getText()) * 365; 
      // this will perform multiply actually. Thnak you 
+0

请告诉我,如果我添加.'toString()'方法会有什么问题?你能解释一下谁吗? –