所以我有一个计算指数增长的程序,它看起来应该可以工作......但是当我尝试在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);
}
}
}
答案 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
必须声明为public
,static
和void
。它必须指定一个形式参数(第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目录,该目录将在存储应用程序的位置创建。