大家好我的名字是Fyree!我有一个介绍性的Java课程作业,我需要创建一个程序,用于输入初始值的用户输入,以及所有五年的值来制作折线图(但这是另一篇文章),并打印速率。这是我的问题,当我尝试运行这个小程序时它打开(它编译没有错误),但只显示为一个空白屏幕,并说applet没有初始化在小程序的底部。我不确定为什么会这样(目前我正在尝试将分配的费率部分用于需要用户给出的五年值和起始值,并使用它们打印出增长率或兴趣)。我想知道为什么会发生这种情况,以及我需要做些什么来正确地在屏幕上显示速率输出(或者在我放入之后在线图下)。任何帮助将不胜感激,因为这项任务明天到期!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Rate_Graph extends JApplet implements ActionListener
{
JLabel bv, ev1, ev2, ev3, ev4, ev5;
JTextField bv1, ev_1, ev_2, ev_3, ev_4, ev_5;
JButton go, add1, add2, add3, add4, add5;
public void init()
{
setLayout(new FlowLayout()); //This sets the preferred layout format
bv = new JLabel("Enter beginning value:"); //Beginning value input
bv1 = new JTextField(5);
ev1 = new JLabel("Enter year 1 value:"); //Year 1 value input
ev_1 = new JTextField(5);
ev2 = new JLabel("Enter year 2 value:"); //Year 2 value input
ev_2 = new JTextField(5);
ev3 = new JLabel("Enter year 3 value:"); //Year 3 value input
ev_3 = new JTextField(5);
ev4 = new JLabel("Enter year 4 value:"); //Year 4 value input
ev_4 = new JTextField(5);
ev5 = new JLabel("Enter year 5 value:"); //Year 5 value input
ev_5 = new JTextField(5);
go = new JButton("Add!"); //Button that implements all the values
go.addActionListener(this); //So it does something
add(bv); add(bv1); //Adding all of the different things
add(ev1); add(ev_1);
add(ev2); add(ev_2);
add(ev3); add(ev_3);
add(ev4); add(ev_4);
add(ev5); add(ev_5);
add(go);
}
public void actionPerformed(ActionEvent event)
{
/*Object src = event.getSource();
if(src==go){
String strbv = bv1.getText();
String strev1 = ev_1.getText();
String strev2 = ev_2.getText();
String strev3 = ev_3.getText();
String strev4 = ev_4.getText();
String strev5 = ev_5.getText();
}*/
}
int intbv = Integer.parseInt(bv1.getText());
int intev1 = Integer.parseInt(ev_1.getText());
int intev2 = Integer.parseInt(ev_2.getText());
int intev3 = Integer.parseInt(ev_3.getText());
int intev4 = Integer.parseInt(ev_4.getText());
int intev5 = Integer.parseInt(ev_5.getText());
public double computeRate()
{
double rate = (Math.pow(intev5 / intbv, 1.0 / 5.0) - 1);
return rate;
}
}
答案 0 :(得分:0)
在您的代码中,您获得了NullPointerException
,因为您尝试使用intbv
&{39} {{1}来初始化intbv1
,JLabel
,... }},bv
,....尚未初始化。
只需声明bv1
,intbv
,intbv1
...(不初始化),并在intbv2
中执行任何操作时为其指定值。
actionPerformed