Использование другого Java-кода в проекте (Как получить доступ к переменным) - PullRequest
1 голос
/ 03 октября 2011

Я написал простую программу для рисования, и для создания меню я использовал этот источник, http://download.oracle.com/javase/tutorial/displayCode.html?code=http://download.oracle.com/javase/tutorial/uiswing/examples/components/MenuLookDemoProject/src/components/MenuLookDemo.java

Поэтому в своей программе для отображения меню я добавил только следующие строки:

    MenuDemo demo = new MenuDemo();
    frame.setJMenuBar(demo.createMenuBar());

Когда я запустил программу, меню успешно работает, но, с другой стороны, например, когда я нажимаю sth в меню, в методе "actionPerformed" я хочу изменить логическую переменную моей программы.Но «actionPerformed» существует в «MenuLookDemo.java», поэтому я не могу получить доступ к переменным.

Можете ли вы предложить решение, пожалуйста?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 октября 2011

Возможно, вы можете переписать класс MenuDemo и передать свой объект MenuDemo для доступа к вашей переменной.

class MenuDemo{
  YourType obj;
  MenuDemo(YourType obj){
    this.obj = obj;
  }
  // Now you can access elements of obj
}
0 голосов
/ 04 октября 2011

Основываясь на том, что есть у Пикаурда, сделайте это:

public class MyType {
  int x;
  public void doTheNeedful() {
    x = 5;
  }
}

Затем убедитесь, что MenuDemo содержит поле obj класса MyType. Внутри actionPerformed(), звоните obj.doTheNeedful().

Я сознательно не просто даю вам код этого; вышеприведенного предложения должно быть достаточно, чтобы вы поняли его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...