JTable 自定义标头渲染器看起来像其他具有 Nimbus 外观和感觉的标头吗?

发布于 2024-09-04 02:18:08 字数 186 浏览 2 评论 0原文

每当我为 JTable 创建自定义标头渲染器时,它最终看起来与 Nimbus 的外观和感觉都不正确。默认的表格标题有银色渐变,自定义渲染器看起来不是这样。过去我只是避免创建自定义标题渲染器。是否可以将默认外观复制到我的新自定义渲染器上?基本上我想添加一个复选框,并使其周围的区域看起来像普通的列标题,而不仅仅是灰色。我确实知道如何添加复选框并使其可点击。谢谢

Any time I create a custom header renderer for a JTable it ends up not looking correct with the nimbus look and feel. The default table headers have a silvery gradient, custom renderers do not look that way. In the past I just avoided creating custom header renderers. Is it possible to copy the default look onto my new custom renderer? Basically I want to add a checkbox and have the area around it look like a normal column header, not just gray. I do know how to add the checkbox though and make it click-able. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美胚控场 2024-09-11 02:18:09

您可以创建一个扩展 AbstractRegionPainter (javax.swing.plaf.nimbus.AbstractRegionPainter) 的 MyTableHeaderRendererPainter。

看看 Nimbus 如何设计他们的 Painter https:/ /github.com/xsstomy/javacode/blob/master/javax/swing/plaf/nimbus/TableHeaderRendererPainter.java

然后调用自定义渲染器的组件,

.setBackground(new MyTableHeaderRendererPainter());

编写 Painters 很复杂。不幸的是 Nimbus TableHeaderRendererPainter 不可见。也许您可以使用具有不同外观和感觉的 Painter 来获得可接受的结果。

You can create a MyTableHeaderRendererPainter extends AbstractRegionPainter (javax.swing.plaf.nimbus.AbstractRegionPainter).

Look at how Nimbus styles their Painter https://github.com/xsstomy/javacode/blob/master/javax/swing/plaf/nimbus/TableHeaderRendererPainter.java

Then you call on the component of your custom renderer

.setBackground(new MyTableHeaderRendererPainter());

Writing Painters is complicated. Unfortunately the Nimbus TableHeaderRendererPainter is not visible. Maybe you can use a Painter of a different lookandfeel to get an acceptable result.

尸血腥色 2024-09-11 02:18:09

使用 tableHeader 中的默认标头渲染器:

table.getTableHeader().getDefaultRenderer()

Use the default header renderer from your tableHeader:

table.getTableHeader().getDefaultRenderer()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文