2012-06-09 3 views

답변

9

여기에 Absolute Positioning Tutorials이 있습니다. 이 방법이 JPanel의에 JButton의 말을 추가하려면

LayoutManagers을 사용하여 이상 권장하지 않습니다 이유에주의 깊게 읽어주세요, 당신은이를 사용할 수 있습니다

import java.awt.*; 
import javax.swing.*; 

public class AbsoluteLayoutExample 
{ 
    private void displayGUI() 
    { 
     JFrame frame = new JFrame("Absolute Layout Example"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel contentPane = new JPanel(); 
     contentPane.setOpaque(true); 
     contentPane.setBackground(Color.WHITE); 
     contentPane.setLayout(null); 

     JLabel label = new JLabel(
      "This JPanel uses Absolute Positioning" 
            , JLabel.CENTER); 
     label.setSize(300, 30); 
     label.setLocation(5, 5); 

     JButton button = new JButton("USELESS"); 
     button.setSize(100, 30); 
     button.setLocation(95, 45); 

     contentPane.add(label); 
     contentPane.add(button); 

     frame.setContentPane(contentPane); 
     frame.setSize(310, 125); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new AbsoluteLayoutExample().displayGUI(); 
      } 
     }); 
    } 
} 
다음은
JButton button = new JButton("Click Me"); 
button.setBounds(5, 5, 50, 30); 
panel.add(button); 

이 예제 프로그램을 시도 이 절대 레이아웃 코드 샘플 밖으로

Absolute Positioning Output

+0

이 "pane"은 무엇입니까? 대신 JPanel을 사용할 수 있습니까? – whiteberryapps

+0

작동하지 않습니다 ... – whiteberryapps

+0

@ user1441845 :이 최신 편집을 보시고,'JPanel'과 함께 사용하는 방법을 알려 드리겠습니다 :-) 전에 말했던 것을 잊어 버렸으므로'panel.setLayout (null) ',이 코드 예제에서 언급 했었지만 AbsoluteLayout에 대한 –

2

확인 :

구성 요소에서

setLayout(null); 

: 프레임을 상속 클래스 0

Absolute Layout demo

+0

+1,이 튜토리얼을 다른 곳에서 보았습니다 : –

2

setLocation(x,y); 
+0

가 작동하지 않는 곳을 기억할 수 없습니다 ... – whiteberryapps

+0

+1, 좋은 팁 :-) –

+0

우려 사항 : 1) JFrame 자체가 아닌 JFrame의 contentPane의 레이아웃을 설정해야합니다. 2) 컨테이너의 레이아웃이 null의 경우, 코더는 추가되는 컴퍼넌트의 위치 * 및 크기를 전적으로 책임집니다. 3) null 레이아웃 및 절대 위치 지정을 사용하지 않으려면주의해야합니다. –

3

가 서로 조합 ...이 둘을 시도 ...

setLocation()setBounds()

2005 년 NetBeans 팀에서 개발 한 GroupLayout을 사용하는 것이 더 좋습니다. WindowsBuilder Pro는 Gui를 Java로 구현하는 데 유용한 도구입니다.

+0

+1, GroupLayout, 의심 할 바없이 가장 좋은 레이아웃 관리자 중 하나 인 –

+1

@nIcEcOw : NetBeans GUI 편집기에서 땜질을하고 생성 된 코드를 검사하는 것은 하나라는 것을 알았 으면 좋겠다. 방법은'GroupLayout'으로 실험 할 수 있습니다. – trashgod

+0

@trashgod : 재미있는 아이디어, IDE에서 끌어서 놓기, 코드로 실험하고 놀기, 일반적인 방법. 멋진 조언입니다. 감사합니다 .-) –

관련 문제