java - Java重量转换程序中的编译器错误

标签 java compiler-errors

我正在研究体重转换GUI程序。我收到的编译器错误很少。不知道我在做什么错。

下面是错误日志:

Frame4a.java:32: error: class, interface, or enum expected
public void actionPerformed(ActionEvent e){
       ^
Frame4a.java:36: error: class, interface, or enum expected
    double kp= Double.parseDouble(strkilo);
    ^
Frame4a.java:38: error: class, interface, or enum expected
    if(k.isSelected()){ ans=(kp/2.24);
    ^
Frame4a.java:40: error: class, interface, or enum expected
           area.settext( kp + "kilograms = " + ans + " pounds");
           ^
Frame4a.java:41: error: class, interface, or enum expected
    }
    ^
Frame4a.java:47: error: class, interface, or enum expected
        area.settext( kp + "pounds =" + ans +" kilograms");
        ^
Frame4a.java:48: error: class, interface, or enum expected
    }
    ^
7 errors

请给我一些启示吗?

我更新了代码,现在得到了:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.*;
import javax.swing.*;

public class Frame4a implements ActionListener
{
    public static void main(String[] args)
    {
        JFrame f = new JFrame("Weight converter");
        JPanel p = new JPanel(); // Make a JPanel;
        JTextArea area = new JTextArea() ;
        JRadioButton k,Po;
        JTextField field = new JTextField();
        k=new JRadioButton("kilograms to pounds");
        Po=new JRadioButton("pounds to kilograms");
        k.addActionListener(this);
        Po.addActionListener(this);

        p.add(area);
        p.add(k);
        p.add(Po);
        p.add(field);

        f.getContentPane().add(p); // Add panel P to JFrame f
        f.setSize(400,300);
        f.setVisible(true);

    }

    public void actionPerformed(ActionEvent e){

        String strkilo = field.getText();
        double kp= Double.parseDouble(strkilo);
        if(k.isSelected())

        { ans =(kp/2.24);
            area.setText( kp + "kilograms = " + ans + " pounds");
        }
        else
        {
            double ans=(kp*2.24);
            area.setText( kp + "pounds =" + ans +" kilograms");
        }
    }
}
===================
Now the error log:
===================

Frame4a.java:19: error: non-static variable this cannot be referenced from a static context
        k.addActionListener(this);
                            ^
Frame4a.java:20: error: non-static variable this cannot be referenced from a static context
        Po.addActionListener(this);
                             ^
Frame4a.java:36: error: cannot find symbol
        String strkilo = field.getText();
                         ^
  symbol:   variable field
  location: class Frame4a
Frame4a.java:40: error: cannot find symbol
        if(k.isSelected())
           ^
  symbol:   variable k
  location: class Frame4a
Frame4a.java:42: error: cannot find symbol
        { ans =(kp/2.24);
          ^
  symbol:   variable ans
  location: class Frame4a
Frame4a.java:44: error: cannot find symbol
            area.setText( kp + "kilograms = " + ans + " pounds");
                                                ^
  symbol:   variable ans
  location: class Frame4a
Frame4a.java:44: error: cannot find symbol
            area.setText( kp + "kilograms = " + ans + " pounds");
            ^
  symbol:   variable area
  location: class Frame4a
Frame4a.java:49: error: cannot find symbol
            area.setText( kp + "pounds =" + ans +" kilograms");
            ^
  symbol:   variable area
  location: class Frame4a
8 errors

最佳答案

我猜您没有将这些方法放在一个类中。查看文件名,它必须是这样的:

public class Frame4a implements ActionListener {
    public void actionPerformed(ActionEvent e){
        double kp= Double.parseDouble(strkilo);
        if(k.isSelected()){ 
            ans=(kp/2.24);
            area.settext( kp + "kilograms = " + ans + " pounds");
        } else {
            area.settext( kp + "pounds =" + ans +" kilograms");
        }
    }
}

这并不说明您代码中的其他错误,例如settext()可能是setText()

关于java - Java重量转换程序中的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773028/

相关文章:

compiler-errors - 如何编译多个文件夹中的Java类?

c - 错误: unknown register when building uClinux

java - 如何在 Google Protobufs 中完整读取带有分隔消息的文件?

java - 如何在android中实用地在不同语言字符串资源文件夹之间切换?

java - 将自定义值传递给 Reducer

java - Java 中的 Vigenere/多字母密码解码器/解密器/解密器

java - "Code too large"Java编译错误

c - 使用 C 示例运行多线程时出错

java - 除非单击,否则隐藏 PDF 表单文本

c - 错误 C2143 : syntax error: missing ';' before '{' in C