2012-12-13 9 views
0
I 카드 레이아웃 데모와 주변 놀았 던

:스윙 흐름 레이아웃 속성

http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/CardLayoutDemoProject/src/layout/CardLayoutDemo.java

내가 이런 GUI를 구축하고자하지만 난 플로우 레이아웃과 사투를 벌인거야, 나는 다른 속성을 발견 원하는대로 공간을 도우 려하지만이 예제로 작업 할 수는 없습니다.

public FlowLayout(int alignment, int horizontalGap, int verticalGap) 

어떤 도움도 좋은 것 : 사람이 데모에서 흐름 레이아웃에 아래 속성을 적용하는 방법을 보여주세요 수 있습니다.

+0

은 무엇 당신이 달성하고자한다 ... 실험을해야합니까? – MadProgrammer

+0

요소 간의 간격과 요소의 정렬을 제어하기 만하면됩니다. 모든 것을 서로 가깝게 쌓아 놓은 상태에서 모든 것을 일정한 간격으로 설정할 수 있기를 바랬습니다. – mao

+0

@mao 매개 변수 이름은 원하는 것을 말합니다. 동일한 너비로 요소를 정렬하려면 GridLayout을 사용하십시오. – ntalbs

답변

3

때때로, 당신은 단지

enter image description here

public class TestFlow { 

    public static void main(String[] args) { 
     new TestFlow(); 
    } 

    public TestFlow() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 

       JFrame frame = new JFrame(); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setLayout(new BorderLayout()); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     public TestPane() { 
      setLayout(new GridLayout(0, 1)); 
      add(createPane(FlowLayout.LEFT, 5, 5)); 
      add(createPane(FlowLayout.CENTER, 15, 15)); 
      add(createPane(FlowLayout.RIGHT, 20, 20)); 
      add(createPane(FlowLayout.LEADING, 0, 0)); 
      add(createPane(FlowLayout.TRAILING, 5, 5)); 
     } 

     protected JPanel createPane(int alignment, int hGap, int vGap) { 

      JPanel panel = new JPanel(new FlowLayout(alignment, hGap, vGap)); 
      panel.setBorder(new LineBorder(Color.GRAY)); 
      panel.add(new JLabel("Left")); 
      panel.add(new JLabel("Middle")); 
      panel.add(new JLabel("Right")); 

      return panel; 

     } 

    } 

}