비주얼 편집기에서 사용할 새 구성요소 또는 Bean을 작성하는 경우(예: 팔레트에 구성요소 추가) BeanInfo 클래스를 제공하여 새 구성요소 및 Bean의 작동을 제어할 수 있습니다.
BeanInfo 클래스는 java.beans.BeanInfo를 구현하고 비주얼 편집기에서 Bean의 특성 보기 작동 및 사용자 정의기의 사용 가능 여부를 판별하는 데 사용됩니다. 비주얼 편집기에는 공통 AWT 및 Swing 제어에 필요한 BeanInfo 클래스가 들어 있습니다.
BeanInfo 클래스는 디자인 시에만 필요한 정보를 포함하므로 보통 Bean 클래스 자체와는 다른 프로젝트에 보관되며 Bean이 전개될 때는 포함되지 않습니다. Visual Editor for Java는 여러 규칙을 사용하여 규칙에서 설명한 대로 BeanInfo 클래스를 Java Bean과 연관시킬 수 있습니다. 비주얼 편집기에서 발견하려는 BeanInfo 클래스가 들어 있는 Java Bean을 사용하는 경우 사용자는 이러한 규칙을 이해해야 합니다. 이것은 Java Bean 클래스의 써드파티 세트를 사용 중인 경우나 현재 사용 중인 Java Bean과 BeanInfo 클래스를 직접 개발한 경우에 해당합니다.
BeanInfo 클래스에 대한 자세한 정보는 java.sun.com/products/javabeans/docs/에서 JavaBeans 스펙을 다운로드하여 참조하십시오.
java.beans.Introspector 클래스는 Java Bean에 대한 BeanInfo 클래스를 찾는 데 사용됩니다. 해당 클래스를 찾는 시간을 검사라고 하며 이 작업은 Bean을 처음 사용할 때 비주얼 편집기에서 수행됩니다. 예를 들어, 팔레트의 단추를 처음 누르면 올바른 BeanInfo 클래스를 찾는 검사가 수행됩니다. Bean 검사 후에는 결과가 캐시되어 성능 개선을 도와줍니다. 그러나 비주얼 편집기에서 BeanInfo 클래스가 변경되었고 캐시가 낡았음을 발견하면 검사를 다시 수행합니다.
Bean 검사는 Bean 클래스가 있는 getBeanInfo(Class) 정적 메소드를 인수로 호출하여 수행됩니다. 예를 들어,
java.beans.Introspector.getBeanInfo(MyJavaBean.class)
검사기는 다음 논리를 사용하여 인수 클래스 MyJavaBean의 BeanInfo 클래스를 찾습니다. 여기에는 순차적인 여러 단계가 포함되며 단계가 수행되면 검사기는 찾기를 중지합니다. 한 단계가 실패하면 다른 방법으로 Bean 정보를 찾기 위해 그 다음 단계가 사용됩니다.
클래스에 대한 BeanInfo 클래스를 찾은 경우, 검사기는 이 클래스를 명시적으로 리턴하지 않습니다. 대신, 세부사항을 사용하여 java.beans.BeanInfo를 구현하는 임시 결과 클래스를 작성합니다.
BeanInfo 경로를 이해하는 가장 좋은 방법은 검사 수행을 위해 작성된 JVM(Java Virtual Machine)을 고려하는 것입니다. 이 가상 시스템에는 다음 항목으로 구성되는 클래스 경로가 지정됩니다.
가상 시스템 작성을 완료했으므로 java.beans.Introspector에 public void setSearchPath(String[]) 메소드를 사용하여 Beaninfo 클래스 세트를 검색할 패키지 목록이 있습니다.
이 메소드에 대한 인수는 다음과 같습니다.
기록 중인 Bean이 수퍼 클래스에서 속성을 계승하고 있는 경우 기본 BeanInfo는 고유 속성을 나타내지 않습니다. 고유 속성은 getAdditionalBeanInfo() 메소드를 사용하여 명시적으로 나타내야 합니다.
예를 들어,
public BeanInfo[] getAdditionalBeanInfo() { try { // The following will return all inherited features. return new BeanInfo[] { Introspector.getBeanInfo(MyPanel.class.getSuperclass())}; } catch (IntrospectionException e) { return new BeanInfo[0]; }
고유 속성이 나타나지 않는 경우 고유 속성이 소스 코드에 설정되어도 비주얼 편집기에서는 고유 속성을 렌더링하지 않습니다.
JRE 클래스의 BeanInfo 클래스
JRE에 포함된 클래스의 Java Bean은 Visual Editor for Java의 일부로 제공됩니다. 이 Java Bean은 Workbench 내부에 있는 javax.swing.JButton 또는 javax.swing.JFrame과 같은 클래스의 작동을 정의합니다.비주얼 편집기에서 BeanInfo 클래스를 쓸 경우의 팁
이 섹션에서는 Visual Editor for Java에서 사용할 Java Bean의 BeanInfo 클래스를 쓰는 경우 사용할 수 있는 몇 가지 규칙을 설명합니다.플러그인 개발자용 BeanInfo 정보 제어
플러그인 manifest 파일의 항목을 추가하여 BeanInfo 클래스를 클래스 경로 변수와 연관하는 방법에 관한 제어를 연습할 수 있습니다.
상위 주제: 비주얼 편집기 확장