我有這樣的代碼。我減少了所有的細節,但是按下一個按鈕後,這個文本區域會發生變化,它所做的只是改變文本區域。沒有滾動添加。我甚至試圖將滾動策略設置爲始終,但它返回一個錯誤。該面板將被添加到帶有BorderLayout.CENTER的另一個面板,然後該面板將被添加到JFrame中。如何將更改的JTextArea添加到JScrollPane?
public class Tester extends JFrame{
JPanel panel = new JPanel();
public static void main(String[] args) {
new Tester();
}
public Tester(){
setSize(1300, 700);
setTitle("A Bar Chart");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel();
setVisible(true);
}
public void panel(){
JTextArea text = new JTextArea();
text.setPreferredSize(new Dimension(100, 100));
JScrollPane pane = new JScrollPane(text);
JButton button = new JButton("a");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("asd\nasdasd\nasdasd\nasdasd\nasdasd\nasdasd\na\na\na\n");
}
});
panel.add(pane);
panel.add(button);
add(panel);
}
}
我想現在我只是想簡單一些。也許問題是,當我設置文本的大小不會改變,所以滾動不會出現。所以也許現在的問題是我如何讓滾動顯示或更改它的大小,使滾動顯示。
'我砍倒所有details' - 是很好,直到問題得到解決,你不知道什麼細節是相關的。發佈一個證明問題的適當的[mcve]。這是一個帶有scrollpane,textarea和將數據添加到文本區域的按鈕的框架。僅當文本區域的首選大小大於滾動窗格的大小時,滾動纔會發生。 '這個面板將被添加到另一個面板與BorderLayout.CENTER' - 不需要面板。只需將滾動窗格直接添加到框架。 – camickr
好的。我設法用簡單的代碼來模擬問題。 –
這個[topic](http://stackoverflow.com/questions/13096045/adding-scrollpane-to-jtextarea)可能會幫助 – Squiddie