문제

내 현재 문제는 2x2 gridlayout이있는 JFrame이 있다는 것입니다. 그리고 사각형 중 하나 안에는 그리드를 표시하는 jpanel이 있습니다. 나는 Java Swing Library와 함께 현장 하루를 보내고 있습니다 ...

영상

Java는 화면에 맞게 각 Jlabel을 자동으로 확장합니다. 나는 그것이 푸른 사각형 (물)과 검은 테두리가되고 그 회색 공간이 아니라는 것을 원합니다. 회색 공간이 사라지도록 정확한 치수를 얻기 전에 JFrame의 크기를 백만 번 변경할 필요가 없도록 JPANEL의 크기를 영구적으로 설정할 수있는 방법이 있습니까?

나는 또한 그 버튼의 크기를 너무 크지 않도록 설정하고 싶습니다 (BorderLayout 버튼과 텍스트 필드에 사용되고 있습니다)

도움이 되었습니까?

해결책

두 체커 보드가 같은 크기를 유지하려면 각각 자체로 포함되어 있어야합니다. JPanel. 해당 부모 jpanel 각각을 레이아웃 유형의 GridBagLayout. 각 체커 보드 구성 요소의 선호도를 설정 한 다음 해당 컨테이너에 추가하십시오. Gridbaglayout은 기본적으로 각 보드를 부모 jpanel의 중앙에 배치해야합니다. 따라서 창이 크기가 커지면 JPANEL 상위 영역이 커지거나 작아 지지만 내부의 바둑판 구성 요소는 동일한 크기로 유지됩니다.

또는 각 체크 보드 정사각형이 JPanel a BorderLayout 레이아웃 관리자 및 추가 JLabel (파란색 배경색) BorderLayout.CENTER 위치.

버튼은 다음과 같은 것을 시도하십시오.

JPanel theButtonPanel = new JPanel(new BorderLayout());
JButton button1 = new JButton("Fire");
JButton button2 = new JButton("Pass");
JButton button3 = new JButton("Forfiet");

JPanel innerButtonContainer = new JPanel(new Grid(1, 3, 8, 8));
innerButtonContainer.add(button1);
innerButtonContainer.add(button2);
innerButtonContainer.add(button3);

theButtonPanel.add(innterButtonContainer);

마지막으로 스윙 사용자 인터페이스에 디자인 도구를 사용하는 것을 고려하십시오. NetBeans는 있습니다 우수한 UI 디자이너가 내장되었습니다. NetBeans를 다운로드하십시오 여기.

다른 팁

Gridbaglayout 당신이 정말로 사용하고 싶은 것입니다. GridLayout은 레이아웃의 각 구성 요소에 대해 동일한 크기를 강제로 강제로 강제로 제한을 제한합니다. Gridbaglayout은 훨씬 더 강력하고 훨씬 더 복잡합니다. 공부하십시오 API 페이지 그것을 위해. 사용 GridBagLayout, 구성 요소는 원하지 않는 경우 전체 그리드 공간을 채우지 않고 심지어 요구하는 크기를 유지할 수도 있습니다. 구성 요소의 크기가 변경되는 것을 막기 위해 사용 가능한 세 가지 크기 제약 조건을 모두 설정했습니다.

water.setPreferredSize(new Dimension(20, 20));
water.setMinimumSize(new Dimension(20, 20));
water.setMaximumSize(new Dimension(20, 20));

당신의 버튼의 경우, 나는 확실히 내부 패널을 다음과 같이 사용합니다. 브라이언 언급. 모든 버튼이 같은 크기가되기를 원하지 않는 경우 그가 제안한 것처럼 GridLayout 또는 FlowLayout을 사용할 수 있습니다. 메인 버튼 대신 내부 패널에 모든 버튼을 추가하십시오.

가능하다면 setResizeable( false ) 최상위 프레임에서 레이아웃 관리자를 SetBounds를 통해 각 위치 및 크기로 NULL 및 하드 코드로 설정할 수 있습니다. 이것이 내가하는 방법입니다 (물론 크기 조정에 따라).

나는 이와 같은 문제를 해결하는 데 성공했습니다 TableLayout 이것은 제 3 자 레이아웃 관리자입니다. 다운로드하고 튜토리얼을 읽어야하지만 열쇠는 레이아웃의 위치에 jbuttons를 추가 할 때 정당화를 중심으로 설정하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top