【问题标题】:Applet shows up blank, not initializing?小程序显示为空白,未初始化?
【发布时间】:2015-01-09 19:08:55
【问题描述】:

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

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

【问题讨论】:

  • 您标记了 bluej。你用的是bluej,还是用java?您是否曾经出现过一个小程序并向您展示一个 UI,或者是您的第一次尝试?为什么要使用小程序?
  • 我正在使用小程序,因为教授也需要我。此外,BlueJ 只是一个 IDE,可帮助您更轻松地使用 Java 进行编码。你知道为什么会这样吗?我也不确定为什么它被否决,因为它是一个有效的问题,并且标签是正确的。
  • 不,bluej 并不是真正的 java。人们总是在这里问奇怪的问题,因为他们使用了一些奇怪的 bluej 功能,而我们 Java 程序员都无法理解他们在说什么。
  • 我只是将其添加为标签,因为我想不出另一个。 BlueJ 不是一种不同的编程语言。无论如何,你能帮我吗?

标签: java methods applet jtextfield bluej


【解决方案1】:

在你的代码中你得到NullPointerException,因为你试图初始化intbvintbv1,......通过使用JLabelbvbv1,......尚未初始化。

只需声明intbvintbv1intbv2...(不初始化),并在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;

【讨论】:

  • 我改变了那个,但是“添加!”按钮仍然没有做任何事情,而且它应该能够使用我上面使用的 computeRate() 方法打印出汇率。
  • 为什么它会做任何事情。你还没有为此编码。如果你想得到所有值的总和,那么只需添加 intbv, intbv1.... 并打印它。
  • 我需要使用这个方法来计算速率: public double computeRate() { double rate = (Math.pow(intev5 / intbv, 1.0 / 5.0) - 1); System.out.println(rate);退货率; (它也必须是它自己的方法,我之前犯过不这样做的错误,我在作业中丢了分)。这不仅仅是总和,我必须使用一个公式来找到所吸收的增长率,并使用用户输入的值来计算,并打印出需要的增长率。​​span>
  • 我已经编辑了我的代码,请先看一下。我也用过computeRate()。或者您可能还有其他要说的。
  • 它仍然没有做任何事情(我什至没有使用“添加!”按钮,我现在把它拿出来了)。它没有打印汇率。
猜你喜欢
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 2019-06-13
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多