2016-07-18 8 views
-2

자바 스윙에서 작업 중이며 UI 레이아웃이 붙어 있습니다.자바 스윙 UI 컴포넌트 레이아웃

현재 출력은 다음과 같습니다.

enter image description here

나는 그것을 릴을 수정하고 아래 예제에 표시된 사이에 2 개 텍스트 입력을 추가 할. 텍스트 입력을 나란히하는 방법에 대해 도움을주십시오. 모든

enter image description here

답변

2

첫째 : 당신은 정말 jComboBox2보다 당신의 구성 요소에 더 의미있는 이름을 제공해야합니다.

GridBagLayout을 사용하면 그림을 그리기가 쉽지 않습니다. 레이아웃을 통해 n * m 격자가 생성되고 해당 격자 안의 임의의 위치 (텍스트 필드, 레이블, 콤보 상자 등)를 자유롭게 배치 할 수 있다는 것을 이해해야합니다.

예를 들어 jLabel4는 그리드에서 0/3 위치에 있지만 실제로 gridwidth가 -1 인 이유는 확실하지 않지만 여전히 0/3입니다. gridwidth가 3 인 경우 jLabel4는 0/3에서 2/3까지 확장됩니다.

두 행 사이에 무언가를 넣으려면 오른쪽 격자 좌표에 놓고 오른쪽 너비와 높이를 지정해야합니다.

하지만 슬프게도 그림과 똑같이 사용하려면 (예 : 상단 및 하단 구성 요소의 눈금을 늘리거나 구성 요소 자체 대신 새 행 구성 요소를 포함하는 다른 패널을 추가하는 등) 몇 가지 트릭을 사용해야합니다. GridBagLayout이 실제로 어떻게 작동 하는지를 이해하는 데 도움이 될 수있는 방법으로 먼저 그 트릭을 사용하지 않고 어떻게 든 작동하도록하십시오 (심지어 사진과 똑같지는 않더라도). 당신이 정말로 그것을 이해하자마자, 당신의 사진을 재현하는 것이 그렇게 어렵지 않아야합니다.

+0

예제 프로그램에서는 일반 구성 요소 이름을 지정했습니다. 예,이 패널 안의 다른 패널을 사용하고 새 패널 안에 구성 요소를 배치하는 것에 대해 알고 있습니다. 다른 방법으로도 동일한 결과를 얻을 수 있는지 알고 싶었습니다. – pankti

+0

@ pankti : 아니요. JPanel 내부의 JPanel이 레이아웃을 만드는 유일한 방법입니다. –

+0

글쎄, 필자가 생각하기에 샘플 프로그램이라는 것은 의미있는 이름의 필요성을 증가시킬 수도 있지만, 그렇다. 기술적으로 다른 패널을 만드는 것이 유일한 방법 일뿐입니다. 그것은 아마도 (아마도 지금까지는) 가장 복잡하고 성가신 것 중 하나 일 것입니다 : D – Mark