자바 스윙 애플리케이션을 개발 중입니다. 프로그램 자체와 다른 창이 열리면 화면 중앙에 나타나도록하려면 어떻게해야합니까?센터 스윙 윈도우
답변
frame.setLocationRelativeTo(null);
setLocation(x,y)
을 사용하면 손으로해야합니다. 같은
뭔가 :
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((dim.width-frameWidth)/2, (dim.height-frameHeight)/2);
이 (테스트하지)를해야한다. 멀티 스크린 환경에서 손으로 그 일을
가 (당신은 아마 유틸리티 클래스에 원하는 것 '원인, 정적) 같은 것을 제공 : 기본 버튼으로
public static Rectangle getScreenBounds(Component top){
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gd = ge.getScreenDevices();
if (top != null){
Rectangle bounds = top.getBounds();
int centerX = (int) bounds.getCenterX();
int centerY = (int) bounds.getCenterY();
for (GraphicsDevice device : gd){
GraphicsConfiguration gc = device.getDefaultConfiguration();
Rectangle r = gc.getBounds();
if (r.contains(centerX, centerY)){
return r;
}
}
}
return gd[0].getDefaultConfiguration().getBounds();
}
public void centerWindowOnScreen(Window windowToCenter){
Rectangle bounds = getScreenBounds(windowToCenter);
Point newPt = new Point(bounds.x + bounds.width/2, bounds.y + bounds.height/2);
Dimension componentSize = windowToCenter.getSize();
newPt.x -= componentSize.width/2;
newPt.y -= componentSize.height/2;
windowToCenter.setLocation(newPt);
}
, 그것은 JDialog.getRootPane().setDefaultButton(btn)
을하지만 버튼 대화 상자에 이미 추가되어 표시되어야합니다.
두 개의 디스플레이로 작업합니다. 하나는 수직으로 이동합니다. camickr/Rehans의 답변이 저에게 효과적입니다. 창을 첫 번째 화면의 중앙에 배치합니다. 그것은 당신의 방법이 시도하려고하는 것이 아닙니까? 아니면 여기에 뭔가 빠졌나요? 감사! – Riscie
@Riscie 정말 아닙니다. 내 방법은 구성 요소가 표시되는 화면을 찾으려고하므로 첫 번째 구성 요소뿐만 아니라이 화면에도 배치 할 수 있습니다. 명확히 해 주셔서 감사합니다. – Taisin
! 음 그게 꽤 필요해! 수치심은 기본적으로 제공되지 않습니다! – Riscie
당신이 넷빈즈를 사용하는 경우 그것은 간단합니다. JFrame의 속성 창에서 "코드"탭으로 이동하십시오. "Generate center"으로 옵션이 있습니다. 해당 옵션을 선택하십시오. JFrame이 가운데에 표시됩니다.
- 1. 투명한 스윙 윈도우
- 2. 자바 스윙 윈도우 프레임
- 3. 센터
- 4. 내 iPhone 게임 센터 용 게임 센터
- 5. Zoom_changed - 센터
- 6. 센터 본문
- 7. 게임 센터
- 8. 테두리 스윙 스윙
- 9. 스윙
- 10. 스윙 플러그인 시각적 스윙 클래스
- 11. 스윙 응용 프로그램에서 스윙 팝업
- 12. 자바 스크립트로 다시 센터
- 13. 센터 정렬 DIV
- 14. 좋은 관리 센터 템플릿
- 15. 안드로이드리스트 뷰 센터 선택
- 16. 게임 센터 인증 오류
- 17. 센터 div 및 내용?
- 18. 미디어 센터 확장
- 19. 는 "센터"배경 이미지
- 20. 클라우드 및 데이터 센터
- 21. Windows 7 동작 센터
- 22. 센터 텍스트 및 PHP
- 23. UIScrollView 페이징 센터 선택
- 24. SharePoint 검색 센터 문제
- 25. 센터 이미지 및 텍스트
- 26. 게임 센터 vs OpenFeint
- 27. 게임 센터 LEADERboard 질문
- 28. UILabel 센터 정렬 문제
- 29. 센터 라텍스 lstlisting
- 30. 센터 UIPickerView 텍스트
이전 버전의 Java에서도 작동합니까? 나는 잠시 전에 내가 할 수있는 유일한 방법이 "손으로"라고 생각했기 때문에 놀랐다. http://www.java2s.com/Code/Java/Swing-JFC/Howtocenteraframeordialog.htm –
1.4에서 유효하지만 화면을 올바르게 꾸밀거나 크기를 확인해야합니다. – Yishai
모르는 경우에는 분명하지 않지만 javadoc에 설명 된대로 [setLocationRelativeTo()] (http://tinyurl.com/34syhcj)의 동작은 null을 사용하여 실제로 창을 가운데에 맞 춥니 다. – Gnoupi