2017-02-02 3 views
0
private boolean shouldBank; 
private boolean started; 
private long startTime; 
private String areaChoice; 

private FishingArea fishingArea; 

public Fishing (Main s) { 
    this.s = s; 
} 

public void onStart() { 
    FishingMenu menu = new FishingMenu(); 
    menu.setVisible(true); 

    started = true; 
    startTime = System.currentTimeMillis();//Gets time in milliseconds and stores it in a variable. 

    if(menu.exit) { 
     s.log("Script aborted. Exiting."); 
     s.stop(false); 
    } 

    shouldBank = menu.shouldBank; 
    fishingArea = menu.fishingArea; 
    areaChoice = menu.areaChoice; 
} 

Соответствующий FishingMenu код:Лучший способ передать переменные между классами?

btnStart.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) {     
      fishingArea = fishingAreas[cmbArea.getSelectedIndex()]; 
      areaChoice = cmbArea.getSelectedItem().toString(); 

      shouldBank = chkBank.isSelected(); 

      exit = false; 
      dispose(); 
     } 
    }); 

У меня есть FishingMenu, где пользователь выбирает свои варианты, и эти параметры используются в течение первого класса. То, как я сейчас обрабатываю это, - это установить все релевантные переменные в классе меню для публики, а затем создать переменные в основном классе и установить их равными тем из меню, которые вы можете увидеть внизу onStart(). Я знаю, что это довольно плохой способ сделать это, но я не уверен в лучшем способе этого. Я также не уверен, что предоставление этих четырех основных переменных в классе первого класса (shouldBank, start, ... и т. Д.), Как это верно, но я использую их по всему классу и снова, я не знаю лучшего способа , Любые предложения по любой проблеме?

Я пробовал делать что-то в Google, но я не был уверен, как сформулировать вопросы.

+2

У этого метода есть '()' скобки, где вы можете передать параметр другому методу и хотя и другим классам ... – SomeJavaGuy

+0

Рассмотрите возможность отправки более полного образца в [Codereview.SE] для обратной связи с дизайном? – JETM

+0

@JETM Спасибо, я не знал, что существует. – SpeedOfSmell

ответ

0

Вы можете сделать переменные приватными и использовать сеттеры для установки значений. Кроме того, вы можете создавать ValueObjects для своего класса меню. Кроме того, я предлагаю вам извлечь ActionListener.

+0

Извините, что вы имеете в виду, извлекая ActionListener? – SpeedOfSmell

+0

Неважно, это не поможет вашему вопросу. это моя привычка к программированию. вы можете создать класс слушателя, реализующий ActionListener, который будет проще поддерживать ваш проект. –

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