我需要使组件透明,因此没有什么可看的,但是它仍然可以代替它(与setVisible(false)
不同)。
使用CSS术语,我需要visibility:hidden
而不是display:none
。
理想情况下,它应适用于任何组件,包括容器及其子组件。因此,我不认为要继承和继承paint
之类的方法。
- 由其他组件替换并委派可以吗?
- 还是有更简单的方法?
我需要使组件透明,因此没有什么可看的,但是它仍然可以代替它(与setVisible(false)
不同)。
使用CSS术语,我需要visibility:hidden
而不是display:none
。
理想情况下,它应适用于任何组件,包括容器及其子组件。因此,我不认为要继承和继承paint
之类的方法。
setVisible()
隐藏了一个组件,同时它仍然占据其空间,而setHidden()
则缩小了该组件。参见:
Form hi = new Form("Visible",BoxLayout.y());
Button r1 = new Button("Regular");
Button invisible = new Button("Invisible");
invisible.setVisible(false);
Button r2 = new Button("Regular");
Button r3 = new Button("Regular");
Button hidden = new Button("Hidden");
hidden.setHidden(true);
Button r4 = new Button("Regular");
hi.add(BoxLayout.encloseX(r1,invisible,r2));
hi.add(BoxLayout.encloseX(r3,hidden,r4));
hi.show();
,
一种方法是将您想要有时透明的组件(称为“ trans”)放置在另一个JPanel(“ holder”)中,然后将holder放置在您要放置trans的位置。
要使内容透明,请将所有者的首选大小设置为与trans的首选大小相等,并将trans的可见性设置为false,然后重新验证所有者的父代。