2012-01-12 2 views
0


나는 게임을 위해이 레벨 제작자를 프로그래밍하고 있으며 친구들 중 몇 명이하고 있습니다.하지만 지금은 GUI가 null 레이아웃을 사용하고 있습니다. 원하지 않습니다. 지금은 정상적으로 작동하지만 여전히 반대하고 있으며 다른 모든 사람들도 항상 LayoutManager를 사용하도록 권장합니다. 나는 지금 그대로의 디자인을 손상 정말 기꺼이 아니에요, 그래서 나는 꽤 많은 날이처럼 보이는 GUI 만들 수있는 LayoutManager의이 있는지 알고 싶어
enter image description hereJava API에 LayoutManager가있어 이렇게 할 수 있습니까?

IT가해야을 표준 자바 API를 사용하십시오! :)

+0

하지만 FlowLayout을 사용하면 JButton 아래에 JScrollPane을 배치 할 수 없습니다. – Benjamin

답변

2

이것은 BorderLayout에 대한 좋은 보입니다. 버튼을 중첩 된 컨테이너 안에 NORTH 요소로 넣습니다. JScrollPane를 CENTER 구성 요소로 추가하십시오. 그리드 자체는 GridBagLayout 또는 아마도 GridLayout에 대한 좋은 후보인 것처럼 보입니다.

2

짧은 대답, 예 : GridBagLayout. 하지만 그것은 밖으로 운동하고 디버깅하는 고통이 될 것입니다.

긴 대답은 : 사용자 정의 TableCellRenderersTableCellEditorsBorderLayoutJButtons에 대한 JPanelJTable이 최선을 다 할 수있는 것처럼 나에게 보인다.

0

전체 패널에는 GroupLayout을 사용하고지도에는 사용자 정의 페인트 메서드를 사용하십시오.

다른 레이아웃 관리자보다 복잡하기 때문에 여기 많은 사람들이 GroupLayout을 추천한다고 생각하지 않습니다. 나는 그것이 훌륭한 확장 가능한 결과를 산출하기 때문에 그것을 좋아한다, 그래서 나는 그것을 이해하는 시간을 투자했다. 이제는 버튼과 텍스트 필드가있는 사용자 상호 작용 패널에서 특히 다른 것을 거의 사용하지 않습니다.

맵의 경우 사용자 정의 MapPanel을 만들고 paintComponent()을 덮어 씁니다. 물론 사용자 정의 스크롤 알고리즘을 작성해야하지만, 스크롤 막대를 다루지 않아도된다는 작은 이점이 있다고 생각합니다. 누군가가 마우스를 드래그하여지도를 움직일 수 있도록 만들 수 있습니다. 확대하려면 마우스 휠을 사용하고 인터페이스는 매우 직관적으로 만드십시오. 스크롤바를 페인트하고 싶다면 그렇게 할 수 있습니다.

저는 이와 같은 모델을 사용하여 몇 가지 인터페이스를 구축했습니다. 필자는이 모델을 사용하는 게임에 대한 여러지도와 금융 시장 차트 패키지를 작성했습니다. JTable에서 시도하려고하는 악몽과 같은 위대한 일을하기 위해 맞춤 기능을 추가하는 것이 매우 쉽습니다.

관련 문제