【问题标题】:Why am I getting the error: Incompatible types; JButton cannot be converted to a JTextfield为什么我收到错误:不兼容的类型; JButton 无法转换为 JTextfield
【发布时间】:2014-03-10 22:10:31
【问题描述】:

所以我收到了这个错误,我很困惑。我什至没有尝试这样做..这就是我所拥有的:

    import javax.swing.JFrame;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.SwingConstants;


    public class Answerfinder extends JFrame {
    private static final int WIDTH = 400;
    private static final int HEIGHTH = 300;

    private JLabel Ial, Ratelabel,earn1, earn2, earn3, earn4, earn5, earn10;
    private JLabel equalabel;
    private JTextField ratein,initialamin, earn1out, earn2out, earn3out, earn4out, earn5out,   earn10out;
    private JButton calculatebut;
    private CalculateButtonHandler cbhandler;

    public Answerfinder() {

        // adding the labels
        Ial = new JLabel("Enter your initial amount:",SwingConstants.RIGHT);
        Ratelabel = new JLabel("Enter growth percentage (just numbers):",SwingConstants.RIGHT);
        earn1 = new JLabel("Total by year 1:",SwingConstants.RIGHT);
        earn2 = new JLabel("Total by year 2:",SwingConstants.RIGHT);
        earn3 = new JLabel("Total by year 3:",SwingConstants.RIGHT);
        earn4 = new JLabel("Total by year 4:",SwingConstants.RIGHT);
        earn5 = new JLabel("Total by year 5:",SwingConstants.RIGHT);
        earn10 = new JLabel("Total by year 10:",SwingConstants.RIGHT);
        equalabel = new JLabel("Press this to calculate: ");

        //adding the textfields
        ratein = new JTextField();
        initialamin = new JTextField();
        earn1out = 

        //adding button
        calculatebut = new JButton("Calculate");
        cbhandler = new CalculateButtonHandler();
        calculatebut.addActionListener(cbhandler);

        // Sets title of program
        setTitle("Exponential Growth Calculator");
       // Sets size of frame, whether or not it's visible, and what do on close
        setSize(WIDTH, HEIGHTH);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        // establishes container and sets the layout
        Container pane = getContentPane();
        pane.setLayout(new GridLayout (8,2));

        pane.add(Ial);
        pane.add(initialamin);
        pane.add(Ratelabel);
        pane.add(ratein);
        pane.add(equalabel);
        pane.add(calculatebut);
        pane.add(earn1);
    }

    private class CalculateButtonHandler implements ActionListener {


        @Override
        public void actionPerformed(ActionEvent e) {

            double rate, initamount, returns1, returns2, returns3, returns4, returns5, returns10;

            rate = Double.parseDouble(ratein.getText());
            if (rate > 1) {
                rate = (rate / 100) + 1;
            } else {
                rate = rate +1;
            }
            initamount = Double.parseDouble(initialamin.getText());
            returns1 = initamount * Math.pow(rate, 1);
            returns2 = initamount * Math.pow(rate, 2);
            returns3 = initamount * Math.pow(rate, 3);
            returns4 = initamount * Math.pow(rate, 4);
            returns5 = initamount * Math.pow(rate, 5);
            returns10 = initamount * Math.pow(rate, 10);
        }
    }

}

我正在制作一个程序,它会发现用户输入的数字呈指数增长。这是代数课程的额外学分项目。丑陋的代码请忽略,我是初中生。

【问题讨论】:

  • 完成声明:earn1out = new JTextField();
  • 你能发布完整的堆栈跟踪吗?
  • @Reimeus 该死的,我很愚蠢。非常感谢。
  • 阅读错误有时(阅读:总是)很有帮助。它会告诉你错误所在的行。

标签: java swing jbutton jtextfield


【解决方案1】:

你那里似乎有一些写一半的代码:

initialamin = new JTextField();
earn1out =

//adding button
calculatebut = new JButton("Calculate");

您应该完成 earn1out = 行,或者删除它。

【讨论】:

    【解决方案2】:

    我认为这是您代码中未完成的行:

    earn1out = 
    

    这被混合到下一个语句中,即 JButton 初始化语句。

    //adding button
    calculatebut = new JButton("Calculate");
    

    【讨论】:

      【解决方案3】:

      您缺少赋值的右侧值(加上分号终止)

      earn1out =
      

      这导致变量earn1out 被分配给JButton。应该是

      earn1out = new JTextField(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 2012-02-07
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多