我在这里遇到了一个小障碍...我试图创建一个可滚动的文本区域,并且我已经使用以下代码片段实现了它,我相当确定这是可以的。如果您能告诉我出了什么问题,我将不胜感激?
JTextArea textArea = new JTextArea();
textArea.setBackground(Color.WHITE);
textArea.setPreferredSize(new Dimension(600, 200));
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
String s = "";
for (int i = 0; i < 100; i++) {
s += "asdflkjas;ldfkjas;lflsdkjfads;kfja;sdlfafsdf\n";
}
textArea.setText(s);
// method to add Component to a JPanel with GridBagLayout
addComponent(scrollPane, 3, 0, 2, 2);
问题很简单 - 一切正常 - 文本正常显示,滚动条显示正常,文本换行...但我无法滚动!
请指点一下?
谢谢!! 巴乔
最佳答案
问题是您将 textArea
的首选大小设置为比显示文本所需的区域更小的大小,因此不会出现滚动条。
最好不要设置首选大小并让 JScrollPane
确定子组件的大小。滚动条将按预期出现。
您可以使用此构造函数:JTextArea(int rows, int columns)
<小时/>旁注:在进行 String
连接时最好使用 StringBuilder
以提高性能。
关于java - 似乎无法将 JTextArea 添加到 JScrollPane 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431578/