gpt4 book ai didi

java - SwingX JXTable boolean 列在突出显示时有不同的颜色

转载 作者:搜寻专家 更新时间:2023-11-01 03:29:08 27 4
gpt4 key购买 nike

我在使用 SwingX 组件时遇到了一点问题。

在我的应用程序中,我使用了一个 JXTable,并在表格上注册了一个 MouseOver ColorHighlighter。表的模型定义了两列;一个字符串列和一个 boolean 列。 JXTable 中 boolean 列的默认呈现器是复选框。现在的问题是,当鼠标移过行时,ColorHighlighter 会以不同的颜色突出显示列; boolean 列比字符串列更暗。在示例中,您可以看到行为。

我希望所有列都以相同的颜色突出显示。

有没有人有解决问题的想法?





导入 java.awt.BorderLayout;
导入 java.awt.Color;

导入 javax.swing.JFrame;
导入 javax.swing.JScrollPane;
导入 javax.swing.table.DefaultTableModel;

导入 org.jdesktop.swingx.JXTable;
导入 org.jdesktop.swingx.decorator.ColorHighlighter;
导入 org.jdesktop.swingx.decorator.HighlightPredicate;


公共(public)类 BooleanHighlighterDemo
{
public static void main( 字符串 args[] )
{
JFrame frame = new JFrame( "boolean 荧光笔");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

JXTable 表 = new JXTable( new BooleanTableModel() );

//添加颜色荧光笔
table.addHighlighter( new ColorHighlighter( HighlightPredicate.ROLLOVER_ROW,
新颜色( 0x330000ff, true ), Color.BLACK ) );

frame.add( new JScrollPane( table ), BorderLayout.CENTER );
frame.setSize( 400, 150 );
frame.setVisible( true );
}
}

类 BooleanTableModel 扩展 DefaultTableModel
{
公共(public) boolean 表模型()
{
super( new Object[][]{ { “1”, Boolean.TRUE }, { “2”, Boolean.TRUE }, { “3”, Boolean.FALSE },
{ "4", Boolean.TRUE }, { "5", Boolean.FALSE } }, new String[]{ "Number", "Boolean"} );
}

@覆盖
公共(public)类 getColumnClass( int columnIndex )
{
切换(列索引)
{
案例 0:
返回字符串类;

情况1:
返回 boolean 值类;

默认 :
返回对象类;
}
}
}

最佳答案

运行最新版本的程序(SwingX 1.6.2)。您应该会看到两列的颜色相同。

关于java - SwingX JXTable boolean 列在突出显示时有不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323679/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com