2014-01-29 6 views
1

Я пытаюсь скрыть JToggleButton с двумя значками для значения по умолчанию и состояния переключения. Почему бы не изменить его отображение в любом случае, хотя я установил значок для обоих состояний?Почему мой JToggleButton не принимает мой setDisabledIcon()?

package gui; 

import java.awt.Image; 

import javax.swing.Action; 
import javax.swing.Icon; 
import javax.swing.ImageIcon; 
import javax.swing.JCheckBox; 
import javax.swing.JToggleButton; 

public class RepeatButton extends JToggleButton { 


    private ImageIcon repeatIcon; 
    private ImageIcon repeatIconUnchecked; 


    public RepeatButton() { 
     repeatIcon = new ImageIcon("media_repeat.png"); 
     repeatIcon.setImage(repeatIcon.getImage().getScaledInstance(repeatIcon.getIconWidth()/2, repeatIcon.getIconHeight()/2,Image.SCALE_AREA_AVERAGING)); 
     repeatIconUnchecked = new ImageIcon("media_repeat_uncheckedalt.png"); 
     repeatIconUnchecked.setImage(repeatIconUnchecked.getImage().getScaledInstance(repeatIconUnchecked.getIconWidth()/2, repeatIconUnchecked.getIconHeight()/2,Image.SCALE_AREA_AVERAGING)); 
     this.setIcon(repeatIcon); 
     this.setDisabledIcon(repeatIconUnchecked); 
     this.setBorder(null); 
    } 
} 
+1

К моменту развертывания эти значки, скорее всего, станут [тегом: embedded-resource]. В этом случае к ним должен быть обращен «URL» вместо «Файл». См. [Info page] (http://stackoverflow.com/tags/embedded-resource/info) для тега, чтобы создать 'URL' для' ImageIcon'. –

ответ

3

отключен значок значок, который будет использоваться, когда ваш JToggleButton получает отключил выполнив:

btn.setEnabled(false); 

И не имеет ничего общего с состояния IsSelected.

Вы можете сделать это вручную, изменив значок, используя прослушиватель для выбранного состояния. Или вы можете использовать метод setSelectedIcon().

+0

избил меня! 1+ –

+0

им так немой: X спасибо вам большое! – nakih

+1

@nakih: не ошибайтесь в неопытности для глупости. Вы поправитесь с этим с дальнейшими усилиями, но самое главное - пожалуйста, * сделайте * проверить API, так как этот ответ легко получается из этого полезного инструмента. –

Смежные вопросы