Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JButton состояние компонета, надо узнать нажата ли кнопка ... 
:(
    Опции темы
Lisus
Дата 14.6.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 21.10.2007

Репутация: 1
Всего: 2



Народ, Вопрос может быть детский, но ответа что-то найти не могу.

Нужно самому рисовать кнопку, а для этого надо знать:
1. имеет ли кнопка фокус (получила фокус) в данный момент
2. имеет ли кнопка фокус от мыши
3. нажата ли кнопка в данный момент.

Есть конечно вариант самому переписать обработчики и фиксировать все изменения, но это геморно.
Скорее всего у компонентов должно быть поле, где эти вещи сохраняются. Но где не знаю.


!!!!!!!!
Пардон не в тот раздел написал. Пожалуйста перенесите в GIU


!!!!!!!
Пасиьа

Это сообщение отредактировал(а) Lisus - 14.6.2008, 19:20
PM MAIL   Вверх
Platon
Дата 14.6.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 4
Всего: 40



поработай с моделями кнопки.
PM MAIL ICQ   Вверх
Lisus
Дата 14.6.2008, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 21.10.2007

Репутация: 1
Всего: 2



Простенький код:
Код

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class testForButton extends JFrame {

    Timer tm = new Timer(1000, new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            huh();
        }
    });
    
    int y = 0;
    JButton sas = new JButton("SuJ");
    JPanel p = new JPanel(new BorderLayout());
    
    void huh() {
        System.out.println("# " + y);
        System.out.println("Arm " + sas.getModel().isArmed()); // 1
        System.out.println("Pres " + sas.getModel().isPressed());  // 2 - нажата
        System.out.println("Mou " + sas.getModel().isRollover());  // 3 - мышФокус
        System.out.println("foc " + sas.getModel().isSelected());  // 4 - фокус ввода
        y++;

    }

    

    static public void main(String[] arg) {
        testForButton t = new testForButton();
        t.p.add(new JButton("favorit"));
        t.p.add(t.sas, BorderLayout.EAST);
        t.getContentPane().add(t.p);
        t.setBounds(200, 200, 200, 200);
        t.tm.start();
        t.show();
    }
}



По идем при запуске в IDE каждую секунду должны выводится результаты состояния кнопки.
Но почему-то состояния 3 и 4 не меняются при наведении мыши и при попадании в общий фркус. Последние два состояния у меня стабильно false. Что я не так делаю?
PM MAIL   Вверх
Lisus
Дата 14.6.2008, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 21.10.2007

Репутация: 1
Всего: 2



Или у JButton модель не полная?
Т.е. её надо дописать самому с MouseListener и FocusListener?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.