初学 问一个简单的问题

dragonfly2008 2008-03-31 09:22:29
//Fig.6.16: FibonacciTest.java
//Recursive fibonacci method
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class FibonacciTest extends JApplet implements ActionListener
{
JLabel numberLabel, resultLabel, beginTimeLabel, endTimeLabel;
JTextField numberField, resultField, beginTimeField, endTimeField;

public void init()
{
Container container = getContentPane();
container.setLayout( new FlowLayout() );

numberLabel = new JLabel( "Enter an integer and press Enter" );
container.add( numberLabel );

numberField = new JTextField( 10 );
container.add( numberField );

numberField.addActionListener( this );

resultLabel = new JLabel( "Fibonacci value is" );
container.add( resultLabel );

resultField = new JTextField( 15 );
resultField.setEditable( false );
container.add( resultField );

beginTimeLabel = new JLabel( "System time at the beginning" );
container.add( beginTimeField );

endTimeLabel = new JLabel( "System time at the end" );
container.add( endTimeLabel );

beginTimeField = new JTextField( 10 );
beginTimeField.setEditable( false );
container.add( beginTimeField );

endTimeField = new JTextField( 10 );
endTimeField.setEditable( false );
container.add( endTimeField );
}

public void actionPerformed( ActionEvent actionEvent )
{
long number, fibonacciValue;
long beginTime, endTime;

beginTime = System.currentTimeMillis();
endTime = System.currentTimeMillis();

number = Long.parseLong( numberField.getText() );

showStatus( "Calculating......" );

beginTimeField.setText( Long.toString( beginTime ) );
fibonacciValue = fibonacci( number );
endTimeField.setText( Long.toString( endTime ) );

showStatus( "Done." );
resultField.setText( Long.toString( fibonacciValue ) );


}

public long fibonacci( long n )
{
if ( n == 0 || n == 1 )
return n;
else
return fibonacci( n - 1 ) + fibonacci( n - 2 );
}
}


问什么程序初始化不成功,主要问题应该处在返回系统时间的那部分,不过不知道哪里错了
...全文
144 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonfly2008 2008-04-01
  • 打赏
  • 举报
回复
呵呵,原来是这样啊
谢谢了
dragonfly2008 2008-03-31
  • 打赏
  • 举报
回复
就是一楼说的那个错误
能不能详细一点,我还是没有明白,为什么没有初始化,resultField不也是同样的实现方式吗
chensjmail 2008-03-31
  • 打赏
  • 举报
回复

beginTimeLabel = new JLabel( "System time at the beginning" );
container.add( beginTimeField ); //beginTimeField 在这之产助学未初始化,这里可能空指针

endTimeLabel = new JLabel( "System time at the end" );
container.add( endTimeLabel );

beginTimeField = new JTextField( 10 ); //这里才初始化哦
beginTimeField.setEditable( false );
container.add( beginTimeField );
rabbit_zizhu 2008-03-31
  • 打赏
  • 举报
回复
如果是这个异常NullPointerException
你看下有没用到没赋值的对象数组元素
zero1111 2008-03-31
  • 打赏
  • 举报
回复
抱什么错误啊?
dracularking 2008-03-31
  • 打赏
  • 举报
回复
NullPointerException

beginTimeField在初始化前就被add了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧