如何解决向 JTextArea 添加垂直滚动条
我正在制作一个简单的 GUI,它有一个 JTextArea,我可以在其中粘贴一个字符串。当字符串太长时,JTextArea 会填满,我可以看到文字低于我为文本区域设置的边界。我想在这个文本区域添加一个垂直滚动条。
public class GUI implements ActionListener {
private static JTextArea fileContents;
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setSize(700,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
panel.setLayout(null);
fileContents = new JTextArea();
fileContents.setBounds(175,75,275,275);
panel.add(fileContents);
JScrollPane sp = new JScrollPane();
sp.add(fileContents,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
panel.add(sp);
我在进行此设置时遇到错误。
Exception in thread "main" java.lang.IllegalArgumentException: illegal component position
at java.desktop/java.awt.Container.addImpl(Container.java:1111)
at java.desktop/java.awt.Container.add(Container.java:489)
at harness.GUI.main(HarnessGUI.java:60)
解决方法
此代码有效:
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setSize(700,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.setVisible(true);
panel.setLayout(null);
fileContents = new JTextArea();
JScrollPane sp = new JScrollPane(fileContents);
sp.setBounds(175,75,300,300);
panel.add(sp);
您有两个问题:
- 如果将
fileContents
添加到添加到sp
的panel
,您不需要将fileContents
添加到panel
。 - 使用
JScrollPane
时,您应该仅使用构造函数Component
而不是JScrollPane(Component view)
方法添加add()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。