SwingX JXTable Boolean column имеет другой цвет при выделении - PullRequest
4 голосов
/ 16 марта 2011

У меня небольшая проблема с компонентами SwingX.

В моем приложении я использую таблицу JXTable, и на столе я регистрирую MouseOver ColorHighlighter.Модель таблицы определяет два столбца;столбец String и логический столбец.По умолчанию средства визуализации логического столбца в JXTable являются CheckBoxes.Теперь проблема в том, что когда мышь перемещается по строкам, ColorHighlighter выделяет столбцы разными цветами;столбец Boolean темнее столбца String.В Примере вы можете увидеть поведение.

Я хочу, чтобы все столбцы были выделены одинаковым цветом.

У кого-нибудь есть идея решить проблему?



</p> <pre><code>import java.awt.BorderLayout; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.table.DefaultTableModel; import org.jdesktop.swingx.JXTable; import org.jdesktop.swingx.decorator.ColorHighlighter; import org.jdesktop.swingx.decorator.HighlightPredicate; public class BooleanHighlighterDemo { public static void main( String args[] ) { JFrame frame = new JFrame( "Boolean Highlighter" ); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); JXTable table = new JXTable( new BooleanTableModel() ); //Add ColorHighlighter table.addHighlighter( new ColorHighlighter( HighlightPredicate.ROLLOVER_ROW, new Color( 0x330000ff, true ), Color.BLACK ) ); frame.add( new JScrollPane( table ), BorderLayout.CENTER ); frame.setSize( 400, 150 ); frame.setVisible( true ); } } class BooleanTableModel extends DefaultTableModel { public BooleanTableModel() { super( new Object[][]{ { "1", Boolean.TRUE }, { "2", Boolean.TRUE }, { "3", Boolean.FALSE }, { "4", Boolean.TRUE }, { "5", Boolean.FALSE } }, new String[]{ "Number", "Boolean" } ); } @Override public Class<?> getColumnClass( int columnIndex ) { switch ( columnIndex ) { case 0: return String.class; case 1: return Boolean.class; default : return Object.class; } } }

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Запустите программу в последней версии (SwingX 1.6.2).И вы должны увидеть один и тот же цвет для обоих столбцов.

1 голос
/ 16 марта 2011

Если вы удалите альфа, цвет подсветки будет одинаковым для обоих столбцов.

...