我是否可以使组件透明而不隐藏它?

问题描述 投票:1回答:2

我需要使组件透明,所以看不到任何东西,但是它仍然可以代替它(与setVisible(false)不同)。

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

理想情况下,它应适用于任何组件,包括容器及其子组件。所以我不认为,继承和覆盖paint或类似方法是可行的。

  • 由其他组件替换并委派可以,是吗?
  • 或者有没有更简单的方法?
java user-interface codenameone transparency
2个回答
0
投票

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

为了使内容透明,将持有人的首选大小设置为等于trans的首选大小,并将trans的可见性设置为false,然后重新验证持有人的父代。


0
投票

[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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.