2009-12-17 3 views
4

일부 텍스트 필드를 수평으로 크기 조정할 수 있지만 최대 너비도 지정되는 GUI를 만들고 싶습니다. 예를 들어, 바람직한 너비는 100 픽셀입니다. 윈도우 크기를 조정하면 더 커질 수 있지만 최대 허용 너비는 200 픽셀입니다. GroupLayout을 지원하므로 addComponent 방법의 최대 크기를 지정할 수 있습니다 (최소 및 기본과 함께).Matisse GUI 빌더를 사용하여 최대 너비 설정

Netbeans 및 Swing GUI Builder (Matisse)을 사용하고 있습니다. 텍스트 필드를 크기를 조정할 수 있도록 설정할 수 있지만 기본 크기를 설정할 수는 있지만 최대 크기를 설정할 위치를 찾지 못했습니다. 최대 크기가 설정 될 수 있기 때문에, 텍스트 필드의 크기를 재조정 할 경우에는 그 상한없는 정도로

alt text http://img690.imageshack.us/img690/3523/netbeanstfproplayout.png

, 넷빈즈 대신 Short.MAX_VALUE을 사용 다음은 속성 시트의 배치 부분이다. 또한 구성 요소의 maximumSize 속성을 설정하려고 시도했지만 효과가 없으며 무시됩니다.

.form 파일을 수동으로 편집하면 max="32767" 부분을 max="200"으로 바꿀 수 있으며 넷빈즈가 올바른 코드를 생성합니다. .form 파일을 직접 수정하지 않고 설정하는 방법이 있습니까?

+0

(5.5, 6.0, 6.1) 전에 GUI에서 최대 크기를 설정했지만 작업 컴퓨터에 Netbeans이없는 것을 확인했습니다. 그룹에서 사전 순으로 속성 목록을 변경해보십시오. –

+0

아마도이 질문에서 언급 한 maximumSize 속성을 참조하고있을 것입니다. 그것은 다른 것입니다. – asalamon74

+0

이 문제를 해결해 보셨습니까? 그렇다면 솔루션은 무엇이며 NetBeans의 어떤 버전입니까? –

답변

0

구성 요소의 크기 조정과 관련하여 JTextField 구성 요소에서 사용할 수있는 옵션이 있습니다. 이 설정은 LayoutManager에 대한 제안입니다 (힌트). 궁극적으로 LayoutManager은 구성 요소 크기를 결정합니다. Matisse 및 .form 개체의 경우 레이아웃은 .form 매개 변수에 의해 절대적으로 제어됩니다. 표준 API에서 .form 개체를 조작하는 자동화 된 방법은 없습니다.

FormGenerator이라는 도구가 있으며 기존 Swing 개체에서 .form 개체를 생성하려고 시도했습니다. .form 파일을 동적으로 조작하기 위해이 파일을 사용할 수 있습니다.

0

자동으로 initComponents() 메서드를 생성 한 후 initComponentsFix()을 추가하여이 문제를 해결했습니다. 그런 다음 프로그램과 같이 최대 크기를 설정할 수 있습니다 :

private void initComponentsFix() 
{ 
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); 
    this.setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jTabbedPaneTravelForms, javax.swing.GroupLayout.DEFAULT_SIZE, 800, 900) //changed max size 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jTabbedPaneTravelForms, javax.swing.GroupLayout.DEFAULT_SIZE, 1228, Short.MAX_VALUE) 
    ); 
} 

은 기본적으로 당신이 initComponents() 방식으로 구축하고 Short.MAX_VALUE 대신 폭을 원하기 위해 최대 크기를 설정할 수있는 레이아웃을 재정의합니다. 이것은 나를 위해 일했다. 최대 크기 일 때 창의 크기 조정이 중지되고 특성에서 최소 크기로 설정된 경우에도 창의 크기 조정이 중지되었습니다.

비록이 질문이 오래되었지만 여전히 도움이되기를 바랍니다. 다음 질문에 대한 답변으로이 문제를 해결했습니다. Netbeans 6.7.1 mainPanel resizing problem.