크기 조정이 불가능한 창 테두리 및 위치 지정
크기 조정이 불가능한 JFrame이 사용되고 Windows Aero가 활성화된 상황에서 setLocation 메서드의 동작 창 테두리를 고려할 때 일관성이 없어 보일 수 있습니다.
이 동작을 설명하려면 다음을 고려하십시오. 코드 조각:
import java.awt.Rectangle; import javax.swing.JFrame; public class FrameBorders { public static void main(String[] args) { JFrame frame1 = new JFrame("frame 1"); JFrame frame2 = new JFrame("frame 2"); frame1.setResizable(false); frame2.setResizable(false); frame1.setVisible(true); Rectangle bounds = frame1.getBounds(); frame2.setLocation(bounds.x + bounds.width, bounds.y); frame2.setVisible(true); } }
이 코드를 사용하면 프레임2가 프레임1의 오른쪽에 배치될 것으로 예상할 수 있습니다. 그러나 Windows Aero를 활성화하면 두 프레임의 테두리가 겹칩니다.
설명 및 해결 방법
Windows Aero는 크기 조정이 불가능한 창에 다른 스타일을 적용하므로 더 두꺼운 테두리. setLocation 메소드는 테두리 두께를 고려하지 않고 창의 원시 크기를 고려하기 때문에 창 위치를 잘못 지정하여 겹치는 문제가 발생합니다.
크기 조정이 불가능한 두 프레임을 테두리 두께를 고려하지 않고 나란히 배치하여 원하는 동작을 달성하려면 테두리가 겹치는 경우 다음을 수행할 수 있습니다.
위 내용은 Windows Aero를 사용할 때 크기 조정이 불가능한 JFrame이 겹치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!