JTextField가 OverlayLayout에 추가되었지만 JTextField는 자동으로 전체 패널의 크기가되도록 조정합니다. 원하지 않습니다. 기본 높이가 글꼴에 적합하고 너비가 생성자의 열 수로 정의되기 때문에 JTextField의 크기를 엉망으로 만들고 싶지 않습니다. 이 문제를 해결하는 올바른 방법은 무엇입니까?OverlayLayout에 JTextField 추가
다음은 현재 가지고있는 관련 코드입니다. frame = new JFrame ("frame"); frame.setResizable (false);
panel = new GamePanel();
panel.setPreferredSize(new Dimension(500,300));
panel.setLayout(new OverlayLayout(panel));
JTextField t = new JTextField(50);
panel.add(t);
frame.add(panel);
frame.pack();
frame.setVisible(true);
GamePanel은 JPanel의 서브 클래스에 불과합니다. JTextField에 영향을 줄 수있는 것은 아무것도하지 않습니다.
편집 : 좋아, 이제 기본 스윙 레이아웃 관리자를 사용하는 것이 최선의 방법이 아니라는 말을 들었습니다. kleopatra는 필요한 세 가지 타사 레이아웃을 참조하는 페이지를 링크했지만 사용자 정의 렌더링 패널에 텍스트 필드 (또는 다른 구성 요소)를 오버레이 할 수있는 항목을 찾을 수 없습니다. 올바른 접근 방법은 무엇입니까?
[* Minimal, Complete, Valid Example *] (http://stackoverflow.com/help/mcve) 현재 접근법. – trashgod
GamePanel에서 FlowLayout을 사용하기 만하면됩니다. – camickr
[setXXSize를 사용하지 마십시오.] (http://stackoverflow.com/a/7229519/203657) – kleopatra