Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > свойства JButton


Автор: Reptor 17.8.2007, 17:37
Не могу найти как сделать так чтоб кнопка при нажатии оставалась нажатой. 

Автор: _Michael 17.8.2007, 17:57
javax.swing.JToggleButton подойдет?

Автор: Reptor 17.8.2007, 18:05
_Michael,  попробовал но что то кнопка нажатой не остаётся. 

Автор: _Michael 17.8.2007, 18:08
Код

public static void main(String[] args) {
    JFrame f = new JFrame();
    f.add(new JToggleButton("Button"));
    f.setSize(200,300);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
}

Ану посмотри. smile у меня работает вот так.

Автор: Reptor 17.8.2007, 18:20
а вот оно не получается у меня так как:

Код

JToggleButton btn2 = new JToggleButton("",new ImageIcon("resource/images/3.1.jpg"));
          btn2.setBorderPainted(false);


setBorderPainted мешает. 

Как можно обойти это ?? 

Автор: _Michael 17.8.2007, 18:27
У меня все работает. Что с бордером что без него. Может у тебя LookAndFeel нестандартный и потому оно так? Т-е в действительности она остается нажатой но мы не можем различить поскольку она одинаково выглядит как нажатая так и ненажатая.

Добавлено через 3 минуты и 49 секунд
Код

                ....
        JToggleButton tb = new JToggleButton("", new ImageIcon("icons/main.gif"));
        tb.setBorderPainted(false);
        buttonPanel.add(tb);
                ....


Добавлено через 5 минут и 15 секунд
Или может у тебя иконка на всю кнопку и под ней не видно?

Автор: Reptor 17.8.2007, 18:46
Цитата

Или может у тебя иконка на всю кнопку и под ней не видно?

да возможно. А как картинку немного меньше сделать?

Автор: math64 17.8.2007, 18:54
Нужно использовать различные иконки для нормального и нажатого состояния
Код

JToggleButton tb = new JToggleButton("", new ImageIcon("icons/main.gif"));
tb.setPressedIcon(new ImageIcon("icons/pressed.gif"));
tb.setSelectedIcon(new ImageIcon("icons/selected.gif));
tb.setBorderPainted(false);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)