2012-04-03 2 views
1

У меня есть класс (назовем его основным классом) и метод в основном классе вызывает методы других classes.I расширили это основной класс во всех других классов, как этотSwingWorker вызывает ошибки в подклассах

 public class Evaluate extends Main 

в мой основной класс я использую SwingWorker, поэтому я написал код, как этот

 class Main extends SwingWorker<Void, Void>{ 
     public Main(GUI frame) { 
     p = frame; 

     } 
     //some more code 

Теперь, когда я построить эту программу, она дает мне следующую ошибку

 error: constructor Main in class Main cannot be applied to given types; 
     public class Evaluate extends Main { 
     required: GUI 
     found: no arguments 
     reason: actual and formal argument lists differ in length 

Здесь GUI содержит основной метод, из которого запускается мое приложение. Всегда помогите мне, почему эта ошибка возникает.

+0

не создает 'GUI/elements' коды графического интерфейса внутри 'Backgroung tasks',' SwingWorker' - это 'get/put/modify' data' from/to' 'Objects, которые существуют до – mKorbel

ответ

2

Когда вы расширяете класс, вы должны вызвать конструктор основного класса в своем собственном конструкторе (используя super). Так что в этом случае вашего Evaluate класс должен выглядеть как

public class Evaluate extends Main { 

    public Evaluate(GUI frame){ 
    super(frame); 
    } 
    // or another constructor 
    public Evaluate(){ 
    super(retrieveAFrameFromSomeWhere); 
    } 
    public Evaluate(loads of other arguments, GUI frame){ 
    super(frame); 
    //do something with the other arguments 
    } 
} 

Выезд отличного Java tutorial для получения дополнительной информации, и, конечно же раздел о Подклассе Конструкторы