使用 GridLayout(1,1) 承載 JTextArea 時正常顯示;改為 FlowLayout() 或移除佈局管理器(預設即 FlowLayout)後,JTextArea 內容不見,僅剩一條細線。
JTextArea 撐開至面板大小,內容可見。JTextArea 無文字時預設大極小(約 0×0),故肉眼不可見。JTextArea area = new JTextArea();
area.setPreferredSize(new Dimension(200, 100)); // 寬 200px、高 100px
panel.add(area); // FlowLayout 下即可正常顯示
JTextArea area = new JTextArea(5, 20); // 建構時給行/列提示
JScrollPane scroll = new JScrollPane(area);
panel.add(scroll); // 滾動面板有合理 preferred size
panel.setLayout(new BorderLayout());
panel.add(area, BorderLayout.CENTER); // 自動填滿可用空間
Swing 佈局管理器依賴元件 getPreferredSize() 進行排版。JTextArea、JTextField 等文字元件若無初始文字或行列提示,預設尺寸極小。養成「建構時給行列」或「包裹 ScrollPane」習慣,可避免 90% 顯示異常。