小程序显示空白,未初始化? [英] Applet shows up blank, not initializing?

查看:30
本文介绍了小程序显示空白,未初始化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我叫 Fyree!我有一个介绍性 Java 课程的作业,我需要创建一个程序,该程序接受用户输入的起始值和所有五年值以制作折线图(但这是另一篇文章),并打印费率.这是我的问题,当我尝试运行这个小程序时,它会打开(它编译没有错误),但只显示为一个空白屏幕,并说小程序未在小程序底部初始化.我不知道为什么会这样(目前我试图让分配的利率部分工作,它需要用户给出的第 5 年值和起始值,并使用它们打印出增长率或利率).我想知道为什么会发生这种情况,以及我需要做什么才能在屏幕上(或在我输入后在折线图下)正确显示速率输出.任何帮助将不胜感激,因为这项作业将于明天到期!

Hello everyone my name is Fyree! I have an assignment for an introductory Java course where I need to create a program that takes user input for the beginning values, and all five year values to make a line graph (but that is for another post), and also print the rate. Here is my problem, when I try to run this applet it opens (it compiles without error), but only shows up as a blank screen, and says applet not initialized at the bottom of the applet. I am not sure why this is (currently I am trying to get the rate part of the assignment working where it takes the year five value and beginning value given by the user, and uses them to print out the rate of growth or interest). I want to know why this is happening, and what I need to do to correctly have the rate output on the screen (or under the line graph once I have that put in). Any help would be appreciated as this assignment is due tomorrow!

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

推荐答案

在你的代码中你得到 NullPointerException 因为你正在尝试初始化 intbv, intbv1, ... 通过使用 JLabelbv, bv1, .... 尚未初始化.

In your code you are getting NullPointerException because you are trying to initialize intbv, intbv1, ... by using JLabel's bv, bv1, .... which are not yet initialized.

只需声明intbvintbv1intbv2...(不初始化),并在执行任何操作时为其赋值actionPerformed.

Just only declare intbv, intbv1, intbv2...(not initialize), and assign them values when any action is performed in actionPerformed.

public void actionPerformed(ActionEvent event) {
    intbv = Integer.parseInt(bv1.getText());
    intev1 = Integer.parseInt(ev_1.getText());
    intev2 = Integer.parseInt(ev_2.getText());
    intev3 = Integer.parseInt(ev_3.getText());
    intev4 = Integer.parseInt(ev_4.getText());
    intev5 = Integer.parseInt(ev_5.getText());
    int sum = intbv + intev1 + intev2 + intev3 + intev4 + intev5;
    System.out.println("Sum            : " + sum);
    System.out.println("Compute rate   : " + computeRate());
}
int intbv;
int intev1;
int intev2;
int intev3;
int intev4;
int intev5;

这篇关于小程序显示空白,未初始化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆