2013-06-17 8 views
0

내 텍스트 필드의 위치를 ​​설정하려고했지만 이 JFrame 중간에 생성 된 것으로 보입니다.JTextfield 위치가 변경되지 않습니다

북쪽 왼쪽 구석에서 원한다면 어떻게 할 수 있습니까? 내 프로그램의 코드를 추가했습니다.

 private static void createAndShowGUI() { 
    //Create and set up the window. 
    JFrame frame = new JFrame("Atarim"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    //Create and set up the content pane. 
    JComponent newContentPane = new Atarim(frame); 
    newContentPane.setOpaque(true); 
    frame.setContentPane(newContentPane); 
    frame.setLocationRelativeTo(null); 
    frame.setSize(352, 950); 
    JTextField textfield = new JTextField("search..."); 
    textfield.setLocation(0, 0); 
    textfield.setSize(150,20); 
    textfield.setVisible(true); 
    newContentPane.add(textfield); 
    frame.setVisible(true); 
} 
+5

1) 자바 GUI를위한 가까이 Using Layout !anagers보고 A visual guide to layout managers을 가지고 ... 같은 것을 시도해 볼 수도 있습니다) 당신이 하나님이 전송됩니다 보장 할 수도 다양한 플랫폼과 다양한 화면 해상도 및 다양한 PLAF를 사용해야합니다. 따라서 구성 요소의 정확한 배치에 도움이되지 않습니다. 견고한 GUI를 위해 구성 요소를 구성하려면 대신 공백에 대한 레이아웃 패딩 및 테두리와 함께 레이아웃 관리자 또는 그 조합을 사용하십시오. 2) 최상위 컨테이너의 크기를 설정하지 마십시오. 대신 내용을 배치하고'pack()'을 호출하십시오. 3)'textfield.setSize (150,20);'텍스트 파일의 크기는 포함 할 문자의 수 (생성자에서 제공)와 글꼴로 가장 잘 나타납니다. –

+0

사용 setHorizontalTextPosition (javax.swing.LEFT); – tejas

+0

및 비슷하게 setVerticalTextPosition (javax.swing.TOP) – tejas

답변

2

내가해야 할 첫 번째 일은 절대적인 통제를위한 이러한 필요성을 극복하려고 노력하면 장기적으로 당신의 삶이 더 쉬워 질 것입니다.

시스템에서 레이아웃 관리자로 알려진 직원을 스윙하여 화면에 UI 요소의 위치를 ​​쉽게 지정할 수 있습니다. 레이아웃 관리자 API는 Swing이 작동하는 방법의 기본입니다. UI가 실행될 수있는 다양한 시스템 (MacOS, Windows 7 및 Windows XP 모두에 대해 개발 됨)에 대한 글꼴 메트릭 및 화면 해상도의 차이를 지속적으로 계산할 필요가 없기 때문에 여러 시스템에 대한 UI를보다 쉽고 빠르게 개발할 수 있습니다 동시에, 나는

당신은

newContentPane.setLayout(new GridBagLayout()); 
GridBagConstraintss gbc = new GridBagConstraintss(); 
gbc.weightx = 1; 
gbc.weighty = 1; 
gbc.anchor = GridBagConstraints.NORTHWEST; 
newContentPane.add(textfield); 

은 자세한 내용

+0

도움에 감사드립니다! :) –

관련 문제