2013-05-08 166 views
0

我想在Eclipse上创建一个Java applet,它将打印随机长度的数组,然后按长度对它们进行排序并打印新数组。但是,当我运行我的程序时,它说我的小程序没有初始化。我的代码如下。谁能帮我?非常感谢!Applet未初始化

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 
import java.applet.Applet; 

public abstract class Proj1_1 extends Applet implements ActionListener 
{ 
     private static int[] numbers = new int[10]; 

    public void init() 
     { 
     Button startButton = new Button("Sort"); 
     startButton.addActionListener(this); 
     add(startButton); 

     setSize(300,300); 
     setVisible(true); 
     } 

     public void paint(Graphics screen) 
     { 
      numbers = Proj1_1.myRandom(numbers); 

      int i; 

      for (i = 0; i <= numbers.length - 1; i++) 
      { 
       screen.fillRect(20, 20 + 10 * i, numbers[i] + 30, 6); 
      } 
     } 

     public static int[] myRandom(int[] numbers) 
     { 
     Random random = new Random(); 
     for(int i = 0; i < numbers.length; i++) 
      numbers[i] = random.nextInt(20); 
     return numbers; 
     } 

     public static int[] selectionSort (int[] numbers) 
     { 
      MySort sort = new MySort(); 
      int[] numbers2 = sort.selectionSort(numbers); 
      return numbers2; 
     } 

     public void actionPerformed(ActionEvent e) 
     { 
      int[] numbers2 = Proj1_1.selectionSort(numbers); 

      int i; 

      for (i = 0; i <= numbers2.length - 1; i++) 
      {  
      Graphics screen = null; 
      screen.fillRect(20, 20 + 10 * i, numbers2[i] + 30, 6); 
      } 
     } 
} 


public class MySort { 

    int [] numbers; 
    public MySort() 
    { 

    } 

    public MySort(int[] numbers) 
    { 
     selectionSort(numbers); 
    } 

    public int[] selectionSort (int[] numbers) 
    { 
     for(int i=0; i<numbers.length; i++) 
       { 
        for(int j=0; j<numbers.length; j++) 
        { 
         if(numbers[i] < numbers[j]) 
         { 
          int temp = numbers[i]; 
          numbers[i] = numbers[j]; 
          numbers[j] = temp; 
         } 
        } 
       } 
     return numbers; 
     } 

} 

回答

1

你宣布你的类作为abstract所以它不能被实例化:

public abstract class Proj1_1 extends Applet 

取出abstract关键字

0

,如果我们去掉抽象它显示的错误为:类我们定义的不是抽象的,所以我们不能重写抽象方法在聆听