2011-09-14 6 views
1

나는 netbeans 도움없이 하드 코딩을 자바 GUI 응용 프로그램에서 일하고 있습니다. 내 gui에 대한 상자 레이아웃을 사용하고 있습니다. 내 질문은 내가 온라인 boxlayout 서로 상단에 요소를 스택해야 참조하십시오에서 간단합니다. 그러나, 텍스트 영역 (x, y) 토글 단추와 다른 텍스트 영역 (x, y)이 표시 될 때 첫 번째 텍스트 영역과 토글 단추 사이에 간격이 있고 토글 단추와 두 번째 텍스트 영역 사이에 간격이 있습니다. . 왜 그들은 쌓이지 않았습니까! 감사합니다.java gui boxlayout 질문

+3

당신은 당신의 문제를 보여줍니다 아주 작은 컴파일 가능한 및 실행 가능한 프로그램을 게시 할 수 있습니다,이 [sscce] (http://sscce.org). 링크는 귀하와 우리 모두에게 도움이되므로 링크를 확인하십시오. 또한 BoxLayout 생성자 호출의 두 번째 매개 변수로'BoxLayout.PAGE_AXIS'를 사용하고 있습니까? 운! –

+0

BoxLayout.Y_AXIS를 사용하고 있습니다. – user541597

+0

BoxLayout.Y_AXIS는 BoxLayout.PAGE_AXIS와 동일하므로 문제가되지 않습니다. 다시 말하지만 SSCCE를 권장합니다 (예 : 아래 그림 참조). –

답변

2

다음은 문제를 설명하는 SSCCE의 예입니다. 아마 당신은 무슨 일이 일어나고 있는지 우리에게 보여 수정할 수 있습니다 :

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

public class BoxLayoutEg { 
    public static void main(String[] args) { 
     JTextArea area1 = new JTextArea(10, 20); 
     JToggleButton toggleBtn = new JToggleButton("Foo"); 
     JTextArea area2 = new JTextArea(10, 20); 

     JPanel toggleBtnPanel = new JPanel(); 
     toggleBtnPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); 
     // toggleBtnPanel.setLayout(new GridLayout()); 
     toggleBtnPanel.add(toggleBtn); 

     JPanel mainJPanel = new JPanel(); 
     mainJPanel.setLayout(new BoxLayout(mainJPanel, BoxLayout.PAGE_AXIS)); 

     mainJPanel.add(new JScrollPane(area1)); 
     mainJPanel.add(toggleBtnPanel); 
     mainJPanel.add(new JScrollPane(area2)); 

     JOptionPane.showMessageDialog(null, mainJPanel); 

    } 
}