크기 조정이 불가능한 창 테두리 및 위치 지정
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!