Подскажите пожалуйста. Я открываю в JFrame другой JFrame - дочерний. как мне можно получить данные из дочернего окна в родительский, по нажатию на ok? Я знаю что есть JOptionPane но она мне не совсем подходит - там нельзя разместить много элементов
Можно так...
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MainClass {
public static void main(String[] args) {
new Father();
}
}
class Father extends JFrame{
private static final long serialVersionUID = 1L;
private JLabel label;
public Father() {
super("Я - родительское окно.");
setDefaultCloseOperation(EXIT_ON_CLOSE);
label = new JLabel("Пусто");
getContentPane().add(label);
setBounds(50, 50, 300, 100);
setVisible(true);
new Son(this);
}
protected void setLabel(String text) {
label.setText(text);
}
}
class Son extends JFrame{
private static final long serialVersionUID = 1L;
public Son(final Father parent) {
super("Я - \"дочернее\" окно.");
setBounds(250, 150, 250, 100);
setVisible(true);
JButton btClick = new JButton("Кликни");
getContentPane().add(btClick);
btClick.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
//по клику на родительском изменится текст метки
parent.setLabel("Полно");
}
});
}
}
Правильным решением будет использовать паттерн MVC. Описываете модель у нее должна быть возможность изменятся.
В родительском окне модель отображается как вы опишете (например, таблица). Дочернее окно будет иметь свой контроллер и будет иметь ссылку на вашу модель. По нажатию на кнопку OK контроллер будет менять модель.
Подробнее о MVC можно почитать в этом ответе http://ru.stackoverflow.com/a/615287/215007
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Перевожу проект на maven и столкнулся со следующей проблемой: Есть такая библиотека - jacobИ у нее кроме jar есть 2 dll
Всем доброго времени суток! Разрабатываю сервлет (Eclipse Indigo, Apache Tomcat, J2EE), опыта очень малоВ сервлете надо задействовать метод Java-класса, который...
до этого использовал отрисовку AWTGraphics2d по мере разработки моего приложения столкнулся с проблемой сильных тормозов и пришлось браться за opengl...
я работаю в NetBeans IDE 82 в этом программе должно показать время и секунды в jLabel1