2

我正在制作一个 GUI,在其中我将水平滚动条添加到 TextArea,因为将在 TextArea 中显示的标签/行的长度大于 TextArea 的宽度。

这是我创建窗格的代码。但是好像什么都没有发生......

//创建用于描述的文本区域并添加到主框架中

public static JTextArea textArea = new JTextArea();
textArea.setEditable(false);                                        
textArea.setLineWrap(true);
textArea.setPreferredSize(new Dimension(100,600));

scrollpanel = new JScrollPane(textArea);    
scrollpanel.setBounds(20, 600, 920, 130);
scrollpanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  
scrollpanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollpanel.setBorder(BorderFactory.createTitledBorder("Description"));
frmToolToMigrate.getContentPane().add(scrollpanel); 
4

2 回答 2

3

而不是setBounds()覆盖滚动窗格的,如此getPreferredSize()所示。默认情况下,滚动条会根据需要自动出现。还要考虑实现接口。Scrollable

图片

于 2013-10-04T11:23:02.147 回答
2

你有没有看过

http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

您还可以将 textArea 作为扩展 TextArea java 类的新类,然后实现可滚动。

public class MyTextArea extends JTextArea implements Scrollable{

//Whatever you want to do

}
于 2013-10-04T09:20:26.400 回答