2012-12-02 4 views
0

안녕하세요. 첨부 된 이미지를 참조하십시오. 세 개의 JPanels가있는 코딩 인터페이스이고 GridBagLayout을 사용하고 있습니다. 좋은 자습서를 읽고 이해할 수 있지만 배치에 대한 지침이 필요합니다. 주어진 그림과 같이 2 JPanels.GridBagLayout의 JPanel이 두 개 이상 있습니다.

예를 들어 내가 frame.add(leftpanel);을 다음 JFrame의에 하나 개의 패널이 있다면 ..

내가 frame.add(panelright);을 수행 할 때 그것이 바로 SID에 추가되도록는 JFrame의 절반에 남아주십시오 정렬하는 방법 ,

enter image description here 내가 1 JPanel의 모든 구성 요소를 처리하지만 1 이상을 처리 할 접 몰라요 수, 그림에 표시된 기능을 수행하는 귀하의 경우 BorderLayout에 내가 생각

+0

* "JFrame의 왼쪽에 정렬"* *** 정확히 *** 절반? 그렇다면 왼쪽/오른쪽 패널에는'GridLayout'이 필요합니다. 그런 다음 패널을'BorderLayout'의'CENTER'에 놓을 수 있습니다. 아래쪽은'PAGE_END'입니다. –

답변

3

을 나를 인도하는 것은 더 유용 할 것이다. 그것에 대해 읽어보십시오 here.

패널을 남동쪽 서쪽에 추가하거나 가운데에 패널을 추가 할 수 있습니다.이 경우 중심에서 GridBag보다 훨씬 좋습니다.

+0

그리고 추가 할 수있는 각 JPanel에 5-6 개의 구성 요소를 추가해야하는 경우에는 GridBagLayout에서 2PPandles를 추가하거나 참조 할 수없는 리소스를 알려주십시오. 그것을 찾으십시오 (두 JPanels) –

+0

네, 당신은 센터 또는 다른 측면 레이아웃에 또 다른 borderlayout를 추가하여 그렇게 할 수 있습니다. – Fyre

2

GridBagConstraints을 사용하여 위치 및 기타 설정을 지정해야합니다. 예를 들어, 당신이 뭔가를 할 수 있습니다 :

GridBagConstraints constraints = new GridBagConstraints(); 
constraints.gridx = 0; 
constraints.gridy = 0; 
constraints.fill = GridBagConstraints.BOTH; 

frame.add(leftPanel, constraints); 
constraints.gridx = 1; 
frame.add(panelright, constraints); 

constraints.gridx = 0; 
constraints.gridy = 1; 
constraints.gridwidth = 2; 
frame.add(bottomPanel, constraints); 

는 GridBagConstraints.gridx 및 GridBagConstraints.gridy이 요소에 대한 행과 열을 결정합니다. 채우기는 사용 가능한 모든 공간을 가로 및 세로로 사용하도록 레이아웃을 알려줍니다. 한 셀이 다른 셀과 비교하여 일정 비율의 공간을 사용하도록 설정하려면 가중치 및 중요도 필드를 사용할 수 있습니다.

+0

frame.add (leftPanel, constraints); 그것은 오류 panel1.add (buttton1, constraints)를 생성합니다; 이 하나는 작동하지만 같은 방식으로 –

+0

코드에서 몇 가지 오류가 수정되었습니다. 어떤 오류가 발생합니까? GridBagLayout이있는 JPanel에 JFrame의 contentPane을 설정한다고 가정합니다. –

2

또한 두 개의 JSplitPane 인스턴스를 고려하십시오. 가장 바깥 쪽 창은 위와 아래 사이에 VERTICAL_SPLIT입니다. 외부 창의 상단에는 왼쪽과 오른쪽 사이에 HORIZONTAL_SPLIT의 또 다른 JSplitPane이 포함됩니다.

관련 문제