![](/img/trans.png)
[英](JTabbedPane) Transparence does not work on L&F different from Nimbus
[英]Java JTable - Transparence with Nimbus/System L&F
我有这个 JTable:
List<MyTuple> l= new ArrayList<>();
l.add(new Element(1,"One"));
l.add(new Element(2,"Two"));
l.add(new Element(3,"Three"));
l.add(new Element(4,"Four"));
l.add(new Element(5,"Five"));
l.add(new Element(6,"Six"));
l.add(new Element(7,"Seven"));
JScrollPane pane = new JScrollPane();
pane.setOpaque(false);
pane.setBorder(new EmptyBorder(0, 0, 0, 0));
pane.setBackground(new Color(0,0,0,0));
pane.setFont(new Font("Segoe UI Semibold", Font.PLAIN, 12));
pane.setBounds(3, 101, 707, 297);
MyTableModel tm=new MyTableModel(l);
table = new MyTable(tm);
table.setBorder(new EmptyBorder(0, 0, 0, 0));
table.setOpaque(false);
//table.getTableHeader().setBackground(new Color(0,0,0,0));
table.getTableHeader().setOpaque(true);
table.getTableHeader().setBorder(new EmptyBorder(0,0,0,0));
table.setBackground(new Color(0,0,0,0));
table.setFont(new Font("Segoe UI Semibold", Font.PLAIN, 12));
table.setFillsViewportHeight(false);
table.getTableHeader().setFont(new Font("Segoe UI Semibold", Font.PLAIN, 13));
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
pane.setViewportView(table);
pane.getViewport().setOpaque(false);
table.setGridColor(Color.GRAY);
table.setShowGrid(true);
getContentPane().add(pane);
MyTuple、MyTable 和 MyTableModel 类不设置任何自定义呈现。
这是我的表在 System L&F 下的样子(我真的很喜欢):
这是我的桌子在 Nimbus L&F 下的样子(注意添加的大矩形):
我希望我的桌子看起来像带有 System L&F 的桌子。 问题是,如果我按照自己的意愿设置一个 L&F,另一个会变得丑陋,我想要一种“兼容性”,有没有办法做到这一点?
也许使用UIManager.put()方法?
您忘记设置scrollpane
viewport
周围的边框。 可能的解决方案:
pane.setViewportBorder(null);
pane.setViewportBorder(BorderFactory.createEmptyBorder());
pane.setViewportBorder(new EmptyBorder(0, 0, 0, 0));
请注意, pane.getViewport().setBorder(...)
将不起作用,因为JViewport
实际上没有边框, setViewportBorder
只是在视口周围绘制边框。 ( 参考)
使表头透明:
pane.setColumnHeader(new JViewport());
pane.getColumnHeader().setOpaque(false);
table.getTableHeader().setOpaque(false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.