我使用 Netbean 的可视化编辑器设计了一个窗口。现在,我有一个 JTextField,我想使用滚动条添加它。我怎样才能做到这一点?
2 回答
您不应该将 Scollbar 添加到 TextField。TextField 用于输入来自用户的小条目,如姓名、年龄、卷号等。从用户输入大尺寸文本(如评论)的最佳组件是 JTextArea。所以您必须添加JTextArea 而不是 JTextField。
将 JTextArea 添加到 JFrame 后,您可以编写几行代码:-
JScrollPane jsc=new JScrollPane();
jsc.add(jta);
其中“jta”是您的 Netbeans 为您生成的 JTextArea 的名称。
(现在,当您添加大于文本区域限制大小的文本时,滚动条会出现。如果您希望滚动条永久显示,那么 JScrollPane 有两个属性:horizontalScrollBarPolicy 和 verticalScrollBarPolicy。将这两个属性设置为 ALWAYS,您将无论 JTextArea 中文本的大小如何,都可以看到滚动条。)
这是向您展示您可以做什么的完整代码:-
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class TextAreaDemo
{
JTextArea jta;
TextAreaDemo()
{
JFrame jfrm=new JFrame("Text Area");
jfrm.setSize(200,300);
jfrm.getContentPane().setLayout(new FlowLayout());
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jta=new JTextArea("Type Here");
//You can use this line to wrap that text when it extends on right side.
//jtxt.setLineWrap(true);
JScrollPane jscrp=new JScrollPane(jta);
jscrp.setPreferredSize(new Dimension(180,100));
jscrp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jfrm.add(jscrp);
jfrm.setVisible(true);
}
public static void main(String args[])
{
SwingUtilities.invokeLater(new Runnable(){public void run(){new TextAreaDemo();}});
}
}
使用 JTextArea 并将其放入 JScrollPane。如果您使用的是可视化编辑器,它将默认完成(将 TextArea 拖放到您的窗口中)。JScrollPane 有两个属性:horizontalScrollBarPolicy 和verticalScrollBarPolicy。将这两个属性设置为 ALWAYS,您将看到滚动条。