Java 如何将JTable背景色默认值更改为白色?

Java 如何将JTable背景色默认值更改为白色?,java,swing,jtable,jscrollpane,Java,Swing,Jtable,Jscrollpane,我在JScrollpane中显示了一个JTable。只有JTable 在其网格中显示几行信息。下面的空间 网格到JPanel的底部, 包含JScrollpane(反过来又包含JTable)的 颜色为纯灰。 我想把那个颜色改成白色。我试着设置JTable的 背景色 白色,[使用setBackground(颜色,白色)]方法,但没有 工作 谁能告诉我用哪种方法将灰色变为白色吗?取决于您的代码 JTable#setFillsViewportHeight(true) 或 JScrollPane#g

我在JScrollpane中显示了一个JTable。只有JTable 在其网格中显示几行信息。下面的空间 网格到JPanel的底部, 包含JScrollpane(反过来又包含JTable)的 颜色为纯灰。 我想把那个颜色改成白色。我试着设置JTable的 背景色 白色,[使用setBackground(颜色,白色)]方法,但没有 工作

谁能告诉我用哪种方法将灰色变为白色吗?

取决于您的代码

  • JTable#setFillsViewportHeight(true)

  • JScrollPane#getViewport().setBackground(JTable#getBackground())
或者,您可以通过以下方式将
JScrollPanes JViewport
适配到
JTables视图中

  • JTable#setPreferredScrollableViewportSize(JTable#getPreferredSize())

您所要做的就是在JTable中获取JScrollPane的JViewport并设置其背景色

JTable table=new JTable(model);  
JScrollPane scroll=new JScrollPane(table);  
scroll.getViewport().setBackground(Color.WHITE);

希望这能提供一个解决方案,使您剩余的表空间变为白色

为什么要将JTable背景色默认值更改为白色?在最后一个屏幕上缩回-只有当滚动窗格包含在一个布局为prefSize的管理器中时,这才“起作用”。无论如何,setPrefScrollableViewportSize与任何setXXSize一样糟糕,只是不太可能,就使用性而言,第二个是不可能的:它看起来只是表格填满了整个滚动窗格区域,但并没有-所以表中的行为是预期的(f.i.组件弹出窗口、工具提示、点击焦点转移)将不起作用,从而混淆用户表#setFillsViewportHeight(true);为我工作。谢谢。好主意-但不是真的推荐,请参阅@mKorbel’s中的我的评论answer@kleopatra:说得好。谢谢你的来信。它缺少表格行为,因为表格并不像看上去那样填满整个滚动窗格。