Я программирую настольное приложение на Java , используя NetBeans .
Мой вопрос такой:
1-й: у меня есть Jframe, который является основным фреймом приложения.
2-й: В какой-то момент я хочу создать какой-то новый объект, поэтому я нажимаю addButton и создаю новый JFrame (я создаю новое окно класса, расширяющее Jframe) с некоторыми текстовыми полями в нем.
private void addButtonMouseClicked(java.awt.event.MouseEvent evt) {
w = new window();
w.setVisible(true);
}
это скриншот, упрощенный простой строкой вместо полного класса
http://img820.imageshack.us/img820/3361/screenshotlw.png
3-й: В этом новом окне я прочитал текстовые поля и создал объект, когда нажимаю какую-то кнопку.
Наконец, когда я нажимаю кнопку подтверждения, я хочу, чтобы новый кадр получил объект во 2-м кадре.
Вопрос : какой самый элегантный / эффективный / простой / лучший способ получить объект во 2-м кадре из первого?.
Мое первое решение: было создать статический метод setNewData()
в первых окнах, и второе окно вызывает этот метод при нажатии кнопки.
Теперь я пришел с новым решением :
На втором кадре у меня есть метод, чтобы установить мышиный слушатель на кнопку. И getString()
Функция.
На первом кадре я получил это:
private void addButtonMouseClicked(java.awt.event.MouseEvent evt) {
w = new window();
w.setHandler(ml);
w.setVisible(true);
}
MouseListener ml = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
TextFieldOn1stFrame.setText(w.getString());
}
};
И на втором кадре я получил это
public void setHandler(MouseListener ml){
button1.addMouseListener(ml);
}
public String getString(){
return texto.getText();
}
Примечание: извините за длинный текст, я новичок в Java и не знаю, являются ли эти решения лучшими.
Кстати извините за мой английский тоже.