2012-12-03 4 views
0

Java Applet을 작성 중이며 CardLayout 패널 중 하나에 BorderLayout.CENTER의 GridLayout이 TextFields를 가로 및 세로로 늘리고 있습니다 (부품 사이의 세로 간격을 설정할 수 있기 때문에 괜찮습니다). 그리드의). TextField가 너무 넓어지는 것을 막을 수 있으며 텍스트를 가운데에 배치 할 수 있습니까?Java Applet, GridLayout TextFields 수평 확장

+0

* "'BorderLayout.CENTER' .. TextField가 너무 넓어지는 것을 막을 수 있습니까? (*) 대신 'BorderLayout.LINE_START' 또는'BorderLayout.LINE_END'에 넣으십시오. 패널은 가장 넓은 열에 지정된대로 넓게 펼쳐지지만 패널의 전체 높이가 있습니다 ('PAGE_START' 및'PAGE_END' 미만). –

+0

@AndrewThompson PAGE_END는 수직 스트레칭을 중단했지만 텍스트 필드는 애플릿에서 훨씬 낮게 나타납니다. 나는 이것으로 해결할지도 모른다. 감사. – Tony

답변

3

JPanel을 사용하여 다른 FlowLayout 내부에 JTextField 포함 JPanels를 중첩하는 것을 고려하십시오. 이 방식으로 JPanel을 사용하는 FlowLayout은 int col 속성을 설정 한 것에 따라 JTextFields 크기가 조정되는 동안 늘어납니다. JPanel을 사용하는 중첩 FlowLayout이 자식 JPanel의 preferredSize보다 작 으면 비참하게 실패합니다.

+0

문제는 내 TextField를 하나의 열로 유지해야한다는 것입니다. 고맙습니다. – Tony

+0

@Harth : 아마도 매우 유연하지 않기 때문에 GridLayout을 사용하지 않아야합니다. 아마도 GridBagLayout 또는 MigLayout을 사용해야합니다. 또는 꽤 JTable. –

+0

:-(나는 분명히 더 복잡하기 때문에 GridBagLayout을 사용하고 싶지 않았지만 나는해야한다고 생각한다. – Tony