2015-06-07 3 views
0

У меня возникли проблемы с созданием кнопки со специфическими свойствами при использовании Nimbus.Свойства JButton игнорируются Nimbus, переопределяя свойство границы

Прежде всего, я использую этот класс для реализации кнопки в некоторых столбцах JTable. https://tips4java.wordpress.com/2009/07/12/table-button-column/

JButton in columns Последних 2 колонок пустые JButtons

Если я пытаюсь установить это свойство в конструкторе я получаю никаких изменений на всех:

renderButton.setBorder(BorderFactory.createEmptyBorder()); 
    renderButton.setOpaque(false); 
    renderButton.setBorderPainted(false); 

Так что я держал мое исследование, и я нашел, как я должен был это сделать, поскольку Нимбус игнорировал эти свойства. Моя следующая попытка:

UIDefaults def = new UIDefaults(); 
    /*Properties Here*/ 
    renderButton.putClientProperty("Nimbus.Overrides", def); 
    renderButton.putClientProperty("Nimbus.Overrides.InheritDefaults", true); 

Так что я попробовал некоторые, но я не знаю, какие имена следует использовать:

def.put("Button.border", BorderFactory.createEmptyBorder()); 
    def.put("Button.borderPainted", false); 
    def.put("Button.background", Color.BLUE); 

Фоновый один единственный, который работает для меня, но я не хочу этого, я хочу, чтобы те удаляли границы.

Одна последняя вещь, делая это (последнее значение в ложь), и только это:

UIDefaults def = new UIDefaults(); 
    renderButton.putClientProperty("Nimbus.Overrides", def); 
    renderButton.putClientProperty("Nimbus.Overrides.InheritDefaults", false); 

я не получаю никаких границ, но я потерять последний фон (JTable раздели один):

enter image description here

Как вы видите, я планирую использовать изображения впоследствии. Мне нравится это лучше, но предпочел бы сохранить фон.

Кстати, может быть, я не должен этого делать, и проблема в другом месте. Спасибо за вашу помощь

+0

Эта тема может помочь: http://stackoverflow.com/questions/5840599/jbutton-background-on-nimbus-laf –

+0

Я уже проверил это, и это действительно помогает. Действительно, было свойство Button.background, и это единственное, что работает, интересно, какие имена свойств связаны с границами. РЕДАКТИРОВАТЬ: только что нашел свойства, но не то, что я ожидал – jaimehrubiks

+0

Я бы использовал Renderer только для разметки, в Связанный (снизу, справа) shoud будет несколько попыток в форме SSCCE/MCVE, усилий не стоит ... – mKorbel

ответ

0

Ответ на изображения, избавляющиеся от фона. Попробуйте отредактировать файлы изображений и стирать весь белый цвет, который не является частью объекта, частью которого является изображение. Затем фон должен отображаться с изображениями.

+0

Фон изображений уже прозрачен, поэтому проблемы там нет. – jaimehrubiks