首页 > 解决方案 > 我可以使组件透明而不隐藏它吗?

问题描述

我需要使组件透明,所以什么都看不到,但它仍然占据了它的位置(与 不同setVisible(false))。

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

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

标签: javauser-interfacecodenameonetransparency

解决方案


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

在此处输入图像描述


推荐阅读