2012-01-05 4 views
0

Я попытался найти его, но я действительно не знаю, какую терминологию использовать, поэтому не получайте никаких результатов. В принципе, у меня есть JFrame, созданный в одном классе, который ничего не наследует. Но есть 2 класса, которые питаются этим, Farmer.java и SheepHandlerThread.java. Я хочу использовать JFrame, созданный в начальном классе, и добавить дополнительные фигуры и объектов, так как SheepHandlerThread обрабатывает выпадение и поведение овец, а Farmer.java управляет квадратом, который переходит в положение щелчка мыши.Используйте другие классы JFrame

Извините, если я задал уже ответивший вопрос, но я начал ходить по кругу и смущать себя, поэтому я надеюсь получить здесь какую-то помощь. Спросите, нужны ли вам какие-либо разъяснения.

Спасибо, Райан

+0

Что вы подразумеваете под «наследует ничего», так это то, что вы не создали свой собственный JFrame? –

ответ

2

Я согласен с приведенным выше ответом. В дополнение к этому я помещаю пример, который поможет вам.

class FrameDemo{ 

    private JFrame frame; 
    private SheepHandlerThread sheepHandlerThread; 
    private Farmer farmer; 

    public FrameDemo(){ 
     initComponents(); 
    } 

    private void initComponents() { 
     frame = new JFrame(...); 
     /* Pass frame reference to the 
      Farmer and SheepHandlerThread 
      class  
      */ 
     farmer = new Farmer(frame); 
     sheepHandlerThread = new SheepHandlerThread(frame); 
    } 

} 
+0

Ах! Я вижу! Это делает его несколько проще! Я только что попал в такой беспорядок, я снова смутил себя, спасибо за помощь, ребята! Редактировать: Не могу повышать ваши ответы, извините :( – RyanSoper

1

Два объектов необходимо иметь ссылку на объект JFrame в некотором роде. При построении двух объектов передайте им объект JFrame. Конструктор может затем сохранить фрейм в поле экземпляра и делать все, что они хотят делать с ним, когда захотят.

Или эти объекты не должны касаться пользовательского интерфейса и должны предоставлять услуги только кадру. В этом случае, кадр вызовет эти службы и обновит сам результат этих служб.

Смежные вопросы