내 문제는 내 프로젝트에서 더 복잡한 그래픽 인터페이스를 만들고 싶습니다. 우선 아래 코드와 함께 전체 화면 모드를 사용하고 있습니다.전체 화면에서 GridBagLayout을 사용하여 컴포넌트 푸팅
public class MainFrame extends JFrame
{
...
private Container container;
private GridBagLayout gbl;
public MainFrame()
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice dev = env.getDefaultScreenDevice();
dev.setFullScreenWindow(this);
setLayoutManager();
}
...
}
모두 괜찮습니다. 다음 단계는 두 개의 JPanels를 추가하는 것입니다. 내가 사용하고자하는 레이아웃 매니저는 GridBagLayout입니다.
private void setLayoutManager()
{
container = getContentPane();
gbl = new GridBagLayout();
container.setLayout(gbl);
}
private void addMenu()
{
MenuBar menu = new MenuBar();
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.ipady = 0;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1.0;
gbc.weighty = 0.05;
gbl.setConstraints(menu, gbc);
container.add(menu);
}
private void addWorkArea()
{
WorkArea area = new WorkArea();
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbl.setConstraints(area, gbc);
container.add(area);
}
그리고 그 결과는 다음과 같습니다 여기
가 my project입니다 :
왜 상단에 스트립이 무엇입니까?
거기를 클릭하고 드래그하면 더 많은 응용 프로그램이 움직입니다. 도와주세요. JFrame을 없애고 모든 공간을 채우는 것이 중요합니다. 이 컨텐츠를 배치 할 때 당신은 내가 문제가 무엇인지 말할 때 웃을거야
1) 더 나은 도움을 더 빨리 얻으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 중첩 된 레이아웃 사용을 고려하십시오. 3) 질문에 물음표를 추가하십시오. –
레이아웃을 설정 한 후 전체 화면을 설정해보십시오. 또한 프레임에 자체 레이아웃을 설정하려고하지의 contentPane –
나는 양이 "그렇게하지 마십시오"하는 대답은 일반적으로 환영받지 못하는 것을 알고,하지만 ... 의 GridBagLayout은 가장 어려운 레이아웃 매니저 이해되어야한다/용도. 사용하기 쉬운 레이아웃 관리자가 많이 있습니다. 예를 들어, MigLayout을 살펴보십시오. 또는 적어도 중첩 된 BorderLayouts을 사용하십시오. – GreyBeardedGeek