Это дует в тот же звуковой сигнал, что и ответ @ PeterRincker, но я думаю, что вы должны следовать :help new-filetype-scripts
как описанию (, если ваш тип файла может быть обнаружен только путем проверки содержимого файл ) идеально соответствует вашему варианту использования.
С этим вы помещаете следующее содержание в ~/.vim/scripts.vim
:
if did_filetype() " filetype already set..
finish " ..don't do these checks
endif
if getline(1) =~ '^title:'
setfiletype markdown
endif
Загрузите изображения ImageIcon
. Создайте a JToggleButton
. Затем примените значки с AbstractButton.setIcon/setPressedIcon/setSelectedIcon
. Удалите границу с AbstractButton.setBorderPainted(false)
.
Как насчет JToggleButton
? Можно разделить его на подклассы и переопределение paint()
нарисовать правильный образ на основе того, выбрано ли это или нет.
Иначе должен был бы разделить на подклассы JPanel
и поймайте щелчки мышью, переопределив paintComponent()
нарисовать правильный образ. Таким образом, единственной вещью, которая оттянута, является действительный образ (в отличие от этого, JToggleButton
опция).
Ваш лучший выбор состоит в том, чтобы разделить AbstractButton на подклассы и установить свойства как граница и фон (в Вашем конструкторе).
MyButton() {
setBorder(null);
setBackground(null);
}