2011-05-03 2 views
8

Java GUI 편집기 또는 라이브러리를 다음 외래종 속성으로 찾고 있습니다. 런타임에 GUI를 조작 할 수 있습니다. 즉, 실행중인 프레임에는 사용자가 단추 및 기타 위젯을 추가 할 수있는 특수 컨트롤 (예 : 오른쪽 클릭)이 포함될 수 있습니다.런타임에 객체를 조작 할 수있는 Java 용 GUI 편집기

또는 실행중인 Java 프로그램과 상호 작용할 수있는 GUI 편집기를 사용할 수 있습니다. 프로그램에 "버튼을 추가하십시오"라고 표시되고 편집기는 버튼이있는 팔레트를 사용자에게 표시합니다. 사용자는 버튼을 추가하고 그것을 누르고, 프로그램은 "버튼을 눌렀다"라는 이벤트를 수신한다.

처음부터 쓰지 않고도 기성품으로 사용할 수있는 것이 있습니까?

+2

호기심 : 왜 그런 것이 필요합니까? –

+0

GUI 편집을 가이드 활동으로 구현하려면 (예 : 버튼이 없기 때문에 테스트가 실패한 경우 GUI 편집기를 팝업하십시오). –

답변

1

준수 JavaBean 라이브러리는 Design Time 의미론을 지원합니다. 요컨대, 빈 (구성 요소)은 컨테이너에서 실행되는 것으로 이해됩니다. 디자인 타임에 컨테이너는 편집기 '캔버스'이고 런타임에는 (GUI) 컨테이너 계층 구조의 루트입니다. 빈의 작성자는이 상태 플래그를 질의하고 적절하게 행동 할 것으로 기대된다. designtime의 테두리를 변경하여 크기 조정을 위해 드래그하는 '핸들'을 포함시킵니다. 그리고 자연스럽게 부모 구성 요소 (일종의 디자인 캔버스라고 가정 됨)도 디자인 변경 사항을 존중해야합니다. 크기가 조정 된 구성 요소를 처리하도록 레이아웃을 수정하십시오.

그렇긴하지만, 현재 제공되는 제품 중 어느 것도 단순히 앱에서 디자인 타임과 런타임을 전환 할 수 있다고는 생각하지 않습니다.

효과적으로 (a) 라이브러리를 선택하고 실행중인 앱으로 디자인 타임을 지원하는 데 필요한 기계를 번들로 제공해야하며 (c) 실제로 런타임 GUI로 디자인 화면 (캔버스)을 가장해야합니다 . 물론 관심있는 디자인 작업 만 지원하면되지만, 결론은 GUI 편집기를 작성하는 것입니다.

이 접근법의 이점은 무엇입니까? 글쎄, 당신은 "구성 요소"를 재사용하고 있으며 대부분 컨테이너를 해킹해야합니다.

내가 이런 식으로해야한다면, 넷빈을 심각하게보고, keep this STO question in mind, 그리고 거기에서 가져 가라.