> Java > java지도 시간 > Windows Aero가 활성화된 상태에서 크기 조정이 불가능한 JFrame을 올바르게 배치하는 방법은 무엇입니까?

Windows Aero가 활성화된 상태에서 크기 조정이 불가능한 JFrame을 올바르게 배치하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-09 08:25:07
원래의
895명이 탐색했습니다.

How to Correctly Position Non-Resizable JFrames with Windows Aero Enabled?

크기 조정이 불가능한 창 테두리 및 위치 지정

Windows Aero가 활성화된 상태에서 크기 조정이 불가능한 JFrame을 생성할 때 setLocation 메서드는 창 테두리가 올바르게 지정되어 테두리가 겹칩니다. 이는 두 개의 프레임을 나란히 배치할 때 관찰할 수 있습니다.

이 문제를 해결하려면 크기 조정이 불가능한 컨테이너의 경계 설정에 대한 제한 사항과 주의 사항을 이해하는 것이 중요합니다. 크기 조정이 불가능한 컨테이너의 경계를 조정할 때 플랫폼별 글꼴 차이에 관계없이 모든 텍스트가 계속 표시되도록 하는 것이 중요합니다.

이러한 과제를 설명하려면 다음 예를 고려하세요.

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Evil extends JPanel {

    private static final String s =
        "Tomorrow's winning lottery numbers: 42, ";
    private JLabel label = new JLabel(s + "3, 1, 4, 1, 5, 9", JLabel.LEFT);

    public Evil() {
        this.add(label);
    }

    private void display() {
        JFrame f = new JFrame("Evil");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this, BorderLayout.WEST);
        f.pack();
        int w = SwingUtilities.computeStringWidth(
            label.getFontMetrics(label.getFont()), s);
        int h = f.getHeight();
        f.setSize(w, h);
        f.setResizable(false);
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new Evil().display();
            }
        });
    }
}
로그인 후 복사

이 예에서는 복권 번호 문자열을 표시하는 JLabel을 사용하여 크기 조정이 불가능한 JPanel이 생성됩니다. JFrame의 크기는 텍스트의 너비와 높이를 기준으로 설정됩니다. 프레임이 표시되면 문자열 너비에 맞게 너비가 줄어듭니다. 그러나 사용자 플랫폼에 더 큰 FontMetrics가 포함된 글꼴이 있는 경우 레이블의 텍스트가 잘려서 복권 번호가 불완전하게 렌더링될 수 있습니다.

따라서 크기 조정이 불가능한 컨테이너의 경계를 수정할 때 주의하는 것이 좋습니다. 필요한 경우 가시성과 원하는 기능을 유지하기 위해 구성요소 요소의 상대적 위치 지정과 크기 조정을 조합하여 사용하는 것을 고려해 보세요.

위 내용은 Windows Aero가 활성화된 상태에서 크기 조정이 불가능한 JFrame을 올바르게 배치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿