我可以使组件透明而不隐藏吗?

我需要使组件透明,因此没有什么可看的,但是它仍然可以代替它(与setVisible(false)不同)。

使用CSS术语,我需要visibility:hidden而不是display:none

理想情况下,它应适用于任何组件,包括容器及其子组件。因此,我不认为要继承和继承paint之类的方法。

  • 由其他组件替换并委派可以吗?
  • 还是有更简单的方法?
hdswphr 回答:我可以使组件透明而不隐藏吗?

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();    

enter image description here

,

一种方法是将您想要有时透明的组件(称为“ trans”)放置在另一个JPanel(“ holder”)中,然后将holder放置在您要放置trans的位置。

要使内容透明,请将所有者的首选大小设置为与trans的首选大小相等,并将trans的可见性设置为false,然后重新验证所有者的父代。

本文链接:https://www.f2er.com/3001436.html

大家都在问