给 JTextArea 加滚动条

首先,把JTextArea 放到 JScrollPane里

JTextArea textArea = new JTextArea();
textArea.setText("aaa");
JScrollPane scrollPane = new JScrollPane(textArea);

接下来JScrollPane的对象往哪放,怎么放,是有讲究的

问题:JFrame 与 JPanel 是有区别的

往JFrame里添加控件时,JFrame.getContentPane().add(),此时添加button、textArea这样的控件是没问题的,但是不能添加JPanel类型的对象,所以JFrame不能直接添加JScrlllPane对象。JPanel.add() 既可以添加button、textArea这样的控件,又可以添加JPanel对象。

解决方法

通过JFrame.setContentPane()方法把JFrame的contentPane设为JPanel,即JFrame.setContentPane(new JPanel()),这样,JFrame.getContentPane().add()就可以跟JPanel一样,想添加什么就添加什么。

完整代码示例:
import javax.swing.*;

public class ScrollTest extends JFrame {
private JButton button;
    private JTextArea textArea;
    private JFrame frame;

    public static void main(String[] args) {
        ScrollTest inst = new ScrollTest();
JFrame frame1 = inst.getFrame();
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);

inst.textArea.setText("中华人民共和国\n唐宋元明清\n");
}

private JFrame getFrame() {
if(frame == null) {
frame = new JFrame();
frame.setSize(1000, 800);
frame.setContentPane(new JPanel());    //没有这句,下面.add(getScrollPane)将显示不出来
//frame.setLayout(null);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(getButton());
frame.getContentPane().add(getScrollPane());
}
return frame;
}

private JScrollPane getScrollPane() {
if(textArea == null) {
textArea = new JTextArea();
textArea.setText("affsdgggdsgds");
}
        JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setBounds(50,250,200,100);
        return scrollPane;
}

private JButton getButton() {
if(button == null) {
button = new JButton();
button.setText("testButton");
button.setBounds(10,10, 200, 30);
}
return button;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值