>Java >java지도 시간 >프레임 크기 조정에 대한 응답성을 유지하면서 Swing의 GroupLayout에서 JLabel 너비를 어떻게 제한할 수 있습니까?

프레임 크기 조정에 대한 응답성을 유지하면서 Swing의 GroupLayout에서 JLabel 너비를 어떻게 제한할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-10 10:10:16390검색

How Can I Limit JLabel Width in Swing's GroupLayout While Maintaining Responsiveness to Frame Resizing?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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