java - 我可以使组件透明而不隐藏它吗?
问题描述
我需要使组件透明,所以什么都看不到,但它仍然占据了它的位置(与 不同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();