>Java >java지도 시간 >크기 조정을 처리하는 동안 Swing GroupLayout 관리 양식에서 레이블의 최대 너비를 상위 프레임 너비의 일부로 제한하려면 어떻게 해야 합니까?

크기 조정을 처리하는 동안 Swing GroupLayout 관리 양식에서 레이블의 최대 너비를 상위 프레임 너비의 일부로 제한하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-15 02:25:08114검색

How can I limit the maximum width of labels in a Swing GroupLayout-managed form to a fraction of the parent frame's width while handling resizing?

Swing GroupLayout: 구성 요소 크기 조정 및 제한

질문

Swing의 GroupLayout에서 관리하는 동적으로 생성된 데이터 입력 양식에서 구성 요소 크기를 어떻게 제한할 수 있습니까? 크기 조정에 적응하면서 레이블의 최대 너비를 상위 프레임 너비의 특정 부분으로 조정 이벤트?

답변

GroupLayout을 사용하여 라벨 너비를 효과적으로 제한하려면:

  • 가장 큰 라벨을 자연스럽게 수용하는 기본 라벨 크기를 활용하세요.
  • 크기 조정 시 구성 요소의 기본 동작을 사용합니다.
  • 활용 GroupLayout.Alignment.TRAILING은 원하는 경우 레이블을 오른쪽 정렬합니다.

예제 코드

import javax.swing.GroupLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class LabelWidthLimitPanel extends JPanel {

    private JLabel label1 = new JLabel("Primary:");
    private JTextField field1 = new JTextField(16);
    private JLabel label2 = new JLabel("Secondary:");
    private JTextField field2 = new JTextField(16);
    private JLabel label3 = new JLabel("Tertiary:");
    private JTextField field3 = new JTextField(16);

    public LabelWidthLimitPanel() {
        GroupLayout layout = new GroupLayout(this);          
        this.setLayout(layout);
        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);
        layout.setHorizontalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                .addComponent(label1)
                .addComponent(label2)
                .addComponent(label3))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(field1)
                .addComponent(field2)
                .addComponent(field3))
        );
        layout.setVerticalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label1)
                .addComponent(field1))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label2)
                .addComponent(field2))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label3)
                .addComponent(field3))
        );
    }
}

이 예에서:

  • GroupLayout은 효과적으로 크기를 조정합니다. 수동 개입 없이 라벨을 편집할 수 있습니다.
  • 텍스트 필드의 크기 조정이 가능하여 최적의 사용을 보장합니다. 공백.
  • 정렬을 사용하여 레이블이 오른쪽 정렬됩니다.

위 내용은 크기 조정을 처리하는 동안 Swing GroupLayout 관리 양식에서 레이블의 최대 너비를 상위 프레임 너비의 일부로 제한하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.