//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 );
}
}
问什么程序初始化不成功,主要问题应该处在返回系统时间的那部分,不过不知道哪里错了
//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 );
}
}
问什么程序初始化不成功,主要问题应该处在返回系统时间的那部分,不过不知道哪里错了
你看下有没用到没赋值的对象数组元素
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 );
能不能详细一点,我还是没有明白,为什么没有初始化,resultField不也是同样的实现方式吗