2014-05-07 3 views
1

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

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

В этом классе имеются геттеры и сеттеры и методы.

Метод «таблица» позволяет мне получить значение, которое я получу по моей кнопке 1, а затем сохранить его как вкладку char [].

Я хотел бы взять тот же char array [] (Button1), с теми же значениями в моей 2-ой кнопки

В заключение, я хотел бы использовать слово, введенное в кнопку 1, на кнопку 2.

но я не знаю, как это сделать?

// КНОПКА 1

final JFrame popup = new JFrame(); 
    //create new instance of JButton 
    final Mot monMot = new Mot(); 

    newButton.addActionListener(new java.awt.event.ActionListener() { 
     @Override 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 

      String name = JOptionPane.showInputDialog(popup, "Enter one word", null); 
      monMot.setMot(name); 

      monMot.tableau(); 
      try { 
       monMot.affichage(); 
      } catch (Exception e) { 
       System.out.println(e); 
      } 
     } 

// КНОПКА 2 ONE KEY

final JFrame popup = new JFrame(); 
    Mot monMot = new Mot(); 

    boolean flag = false; 


    String key = JOptionPane.showInputDialog(popup, "Enter one key",null); 


    try { 
     while (flag == false) { 
      if (key.length() == 1) { 
       flag = true; 
      } else { 
       key = JOptionPane.showInputDialog(popup, "Enter one key",null); 
      } 
     } 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
}    

И мой класс общественный класс Mot {

private String mot; 
private char[] tab; 
//getter et setter 

public String getMot() { 
    return mot; 
} 

public void setMot(String mot) { 
    this.mot = mot; 
} 
//constructeur plein 

public Mot(String mot, char[] tab) { 
    this.mot = mot; 
    this.tab = tab; 
} 
//constructeur vide 
public Mot() { 
} 
//methodes 

public void affichage() { 
    for (int i = 0; i < this.tab.length; i++) { 
     System.out.println(this.tab[i]); 
    } 
} 
     //placage de chaque lettre dans un tableau 
public void tableau() { 
    this.tab = this.mot.toCharArray(); 
} 

}

+0

JOptionPane может вернуться с нулем. Вот почему я рекомендую вам изменить ваш оператор while (flag = (key == null)). Таким образом вы добавляете новое значение в свой флаг и проверяете, что пользователь добавил вход. – bitli

ответ

0

Мое предложение состоит в том, чтобы сделать простой MVC.

Я не уверен, что понимаю вас.

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

Пример кода:

public class Controller { 

     private View view; 
     private Model model; 

     //constructor will get the view and the model, and adds ActionHandlers 
     public Controller(final Model amodel, final View aview) { 
       this.view=aview; 
       this.model=amodel; 
       addOneButtonActionHandler(); 
       addSecondButtonActionHandler(); 
     } 

     public void addOneButtonActionHandler(){ 

       ActionListener actionHandler= new ActionListener() { 

         @Override 
         public void actionPerformed(final ActionEvent e) { 
          //some action to get the String from user (?) 
          model.storeItem(string); 
         } 
       }; 

       view.addActionToOneButton(actionHandler); 
     } 

     public void addSecondButtonActionHandler(){ 

       ActionListener actionHandler= new ActionListener() { 

         @Override 
         public void actionPerformed(final ActionEvent e) { 
          //some action to get the stored String from Model 
          //String key =model.getStoredItem(); 
         } 
       }; 

       view.addActionToSecondButton(actionHandler); 
     } 

} 
+0

Спасибо u! я должен посмотреть, как сделать контролер: D – Skunk

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