“班级没有主要方法”

时间:2014-03-11 01:28:48

标签: java

所以我有一个计算指数增长的程序,它看起来应该可以工作......但是当我尝试在NetBeans中运行它时,它说类没有主要方法。关于这个的另一个问题,当我编译一个文件,它将保存在哪里,它是否可以运行?谢谢你的回答。继承人的代码

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 static void main(String args) {
    Answerfinder find = new Answerfinder();

}

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 = new JTextField();

    //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);
    pane.add(earn1out);
    pane.add(earn2);
    pane.add(earn2out);
    pane.add(earn3);
    pane.add(earn3out);
    pane.add(earn4);
    pane.add(earn4out);
    pane.add(earn5);
    pane.add(earn5out);
    pane.add(earn10);
    pane.add(earn10out);
}

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);
    }
}

}

4 个答案:

答案 0 :(得分:4)

你有:

public static void main(String args) {

你的意思是:

public static void main(String[] args) {

可替换地:

public static void main(String... args) {


main方法必须采用一系列参数。具体来说,来自JLS 12.1.4

  

方法main必须声明为publicstaticvoid。它必须指定一个形式参数(第8.4.1节),其声明的类型是String的数组。因此,可以接受以下任一声明:

public static void main(String[] args)

public static void main(String... args)

答案 1 :(得分:1)

REPLACE:

 public static void main(String args) {
    Answerfinder find = new Answerfinder();
 }

使用:

 public static void main(String[] args) {         //was missing []
    Answerfinder find = new Answerfinder();
 }

OR:

 public static void main(String...args) {         //could also use ...
    Answerfinder find = new Answerfinder();
 }

答案 2 :(得分:1)

main()将一个字符串数组作为其参数。

你可以这样做:

public static void main(String[] args)

public static void main(String... args)

答案 3 :(得分:0)

默认情况下,Netbeans会将项目编译到bin目录,该目录将在存储应用程序的位置创建。