Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление элементами окна JFrame после вызова setVisible(true). / 3 сообщений из 3, страница 1 из 1
29.07.2013, 13:41:23
    #38347318
wvetal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами окна JFrame после вызова setVisible(true).
Можно ли программно менять, например, свойство кнопок (делать их видимыми/невидимыми активными/неактивными) при нажатии на другие кнопки.
Можно ли это делать внутри такого кода?
Код: java
1.
2.
3.
4.
5.
6.
7.
JButton startButton = new JButton("Start");
		startButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				//можно ли(как?) здесь управлять другими кнопками?
                                //можно ли(как?) здесь изменить границы окна?
			}
		});
...
Рейтинг: 0 / 0
29.07.2013, 13:50:42
    #38347329
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами окна JFrame после вызова setVisible(true).
Можно. Использовать соответствующие методы setVisible(), setEnabled(), setBounds().
Но это решение в лоб. По-хорошему стоит использовать binding или вариации с MVC.
Кнопка меняет состояние модели. Модель оповещает слушаетелей через PropertyChangeListener.
А связь других контролов с PropertyChangeListener модели уже делается руками или через binding.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
JButton startButton = new JButton("Start");
		startButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				model.start();
			}
		});

class MyModel extends PropertyChangeSupport{
    State state;

    void start(){
            setState(STARTED);
    }
 
    void setState(State s){
        State old =  this.state;
        this.state = s;
        firePropertyChanged("state", old, s);
    }
}


model.addPropertyChangeListener("state", new PropertyChangeListener(){
         void propertyChanged(PropertyChangeEvent pce){
                 anotherButton.setEnabled(pce.getNewValue() == STARTED);
         }
})
...
Рейтинг: 0 / 0
29.07.2013, 14:22:24
    #38347377
wvetal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Управление элементами окна JFrame после вызова setVisible(true).
Blazkowicz,

Спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Управление элементами окна JFrame после вызова setVisible(true). / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]