Swing GroupLayout의 구성요소 크기 조정 및 제한
Swing의 GroupLayout은 복잡한 사용자 인터페이스에 대한 유연한 레이아웃 관리를 제공합니다. 그러나 동적 크기 조정을 처리할 때 GroupLayout 내에서 구성 요소 크기를 제어하는 것은 어려울 수 있습니다. 이 기사에서는 프레임 크기 변경에 대한 응답성을 유지하면서 GroupLayout에서 구성 요소 레이블의 최대 너비를 제한하는 솔루션을 제시합니다.
문제
다음과 같이 수평 레이아웃을 위한 병렬 그룹과 수직 레이아웃을 위한 순차 그룹을 사용합니다.
*-----------------------------------------------* | label A | field A | | label B | field B | | label C | field C | *-----------------------------------------------*
이 작업은 너비를 제한하는 것입니다. 프레임 크기를 조정할 수 있는 동안 레이블(JLabel의 인스턴스)을 프레임 너비의 1/3로 줄입니다.
해결책
1. 기본 크기 사용
크기 제한을 수동으로 설정하는 대신 GroupLayout은 기본 레이블 크기를 활용할 수 있습니다. 라벨에는 텍스트 내용에 맞춰 기본적으로 선호되는 크기가 있습니다. 기본적으로 GroupLayout은 구성 요소 크기 조정 동작에 대해 이러한 기본 크기를 따릅니다.
2. GroupLayout 정렬
레이블을 오른쪽 정렬하려면 GroupLayout.Alignment.TRAILING을 사용할 수 있습니다.
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)) );
3. 예제 코드
다음 코드는 이 솔루션의 구현을 보여줍니다.
public class GroupPanel 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 GroupPanel(int n) {
위 내용은 프레임 크기 조정에 대한 응답성을 유지하면서 Swing의 GroupLayout에서 JLabel 너비를 어떻게 제한할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!