간단할것 같은 || 간단하지 않아 불가능할지도 모를것 같은 질문..
내꽃
이제 막 JAVA 를 배우고 있는 개발자 같지도 않은 개발자 파트의 한 사람 입니다.
프로그램을 하던중 php 의 경우 html 부분을 안보이게 하면 쉽게 아래의 문제를 해결
하였는데.. java 로 하려니 당췌 모르겠네요.. 질문 여쭙겠습니다.
하나의 Composite 가 있고 GridLayout 으로 설정하여 화면을 줄이면 전체가 줄고 늘리면
늘어나도록 Fill 과 Grab 을 주었습니다.
그 하나의 Composite 에는 2개 이상의 textFiled 와 Lable 이 있을때 if 문으로
어떠한 조건이 되었을때, 하나의 textField 와 Lable 가 보이지 않도록 하려고
합니다.
문제는 여기에 있습니다.
super.setVisible(false); 하면 되겠지요.. (이게 쉽다는 거구요..)
하지만 문제는 자리는 그대로 차지 한다는데 있습니다.
즉, 보이지만 않지 자리를 차지하고 있어서 나머지 textField와 Lable 이Fill 과 Grab 기능을
발휘할 수 없다는 문제가 있는데.. 해결할 수 있는좋은 방법이 없을까요?
+--------+---------+
| Lable| Lable|
+--------+---------+
| textfield | textfield |
+--------+---------+
이것을 단순히 안보이는
+--------+---------+
| Lable| |
+--------+---------+
| textfield | |
+--------+---------+
이것이 아닌
+--------+---------+
|Lable|
+--------+---------+
| textfield |
+--------+---------+
이렇게 하고 싶습니다. 혹시 가능한지.. 가능하다면 답변좀 부탁드리겠습니다.
-
솔찬
구현 가능합니다. 예를들면, 미래 생성한 컴포넌트들을 단지 보이지 않게만 하는 게 아는게 아니라, 컴포넌트들을 동적으로 생성해서 추가하거나 삭제해주면 됩니다. add(), remove()메소드 사용하거나, 컴포넌트 삭제시 컴포넌트 자체를 Dispose 시키시면 됩니다.