내 gui의 레이아웃에 두 가지 문제가 있습니다. JTabbedPane을 사용하여 두 개의 JPanel을 보유하고 있으며, 각 패널에는 버튼과 텍스트 영역이 있으며 GridBagLayout을 사용하여 레이아웃되어 있습니다. 내 패널 중 하나에서 JTextArea를 사용하는 JScrollPane이 있습니다. 이 텍스트 영역에 아무 것도 추가 한 다음 gui를 클릭하여 더 이상 포커스가 없도록하거나 탭을 변경하면 모든 텍스트 필드와 텍스트의 크기가 가능한 작게 변경됩니다.키보드 초점이 맞지 않으면 스윙 구성 요소의 크기가 조절됩니다.
더 여기, 내 문제를 설명하기 전에 내가 텍스트 영역에 추가 한 후 GUI를 클릭하면 사진을 쫓고하려면 여기
내가 추가하는 데 사용하는 코드는 패널에 JTextArea에 :
0,123,516 : 여기table = new JTextArea();
table.setEditable(false);
JScrollPane sp = new JScrollPane(table);
sp.setSize(40, 10);
c.insets = new Insets(10,10,10,10);
c.gridx = 1;
c.gridwidth = 4;
c.gridy = 7;
c.gridheight = 7;
this.add(sp, c);
그리고 내가 패널에 텍스트 영역을 추가하는 데 사용하는 코드입니다
title = new JTextField(10);
author = new JTextField(10);
dueDate = new JTextField(10);
setDate = new JTextField(10);
setWeighting = new JTextField(10);
c.gridx = 2;
c.gridy = 1;
this.add(title, c);//add title field
c.gridx = 2;
c.gridy = 2;
this.add(author, c);//add author field
c.gridx = 2;
c.gridy = 3;
this.add(dueDate, c);//add dueDate field
c.gridx = 2;
c.gridy = 4;
this.add(setDate, c);//add setDate field
c.gridx = 2;
c.gridy = 5;
this.add(setWeighting, c);//add set Weighting field
컴파일 할 수 있고 실행 가능한 코드를 보는 것이 도움이됩니다. 전체 프로그램이 아니라 관련없는 많은 코드로 우리를 늪에 빠뜨릴만큼 커지지 않고 문제를 재현하기에 충분합니다. –
GridBagComponents의 weightx 또는 weighty 필드를 설정할 위치가 어디에도 표시되지 않습니다. 1.0으로 설정하면 어떻게됩니까? 이것이 도움이되지 않는다면 문제를 보여주는 컴파일 가능한 실행 가능한 소형 프로그램 인 [SSCCE] (http://sscce.org) 게시를 다시 고려하십시오. –
내가 그렇게하면 아무 것도 바뀌지 않는 것 같습니다. 크기 조절 동작은 여전히 발생합니다. – lilroo