我試圖讓這個 GUI 上的這個 textarea 有一個滾動,但是當我嘗試添加它時,文本區域覆寫滾動條,反之亦然。沒有錯誤。代碼:
// Text Area at the Center
JTextArea ta = new JTextArea ( 16, 58 );
ta.setEditable ( false ); // set textArea non-editable
JScrollPane scroll = new JScrollPane ( ta );
scroll.setVerticalScrollBarPolicy ( ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS );
send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent send) {
String data = tf.getText();
ta.append("You: " data "\n");
tf.setText("");
System.out.println(data);
}
});
//Adding Components to the frame.
frame.getContentPane().add(BorderLayout.SOUTH, panel);
frame.getContentPane().add(BorderLayout.CENTER, ta);
frame.add(ta);
ta.add(scroll);
frame.setVisible(true);
uj5u.com熱心網友回復:
這些行是問題:
frame.getContentPane().add(BorderLayout.CENTER, ta);
frame.add(ta);
ta.add(scroll);
不要將 the 添加JTextArea到您的框架中,因為JTextArea已經正確配置為位于 的視口內JScrollPane(因為您之前將其提供給了滾動窗格建構式)。此外,您不應該將 添加JScrollPane到JTextArea,因為您想要相反的方式。正確的方法是洗掉提到的行并簡單地添加scroll到您的JFrame,如下所示:
frame.add(BorderLayout.CENTER, scroll);
邊注:
- 如評論中所述,請考慮
pack()在將框架設定為可見之前呼叫框架,以正確調整框架及其組件的大小。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/359093.html
