java中JScrollPane面板如何实现嵌套?
将嵌套的JScrollPane面板使用绝对布局,实现了嵌套,有其它方法吗?
import javax.swing.;
import java.awt.;
public class JScrollPaneTest03 {
public JScrollPaneTest03() {
JFrame jf = new JFrame(); //创建容器
jf.setTitle("滚动窗体嵌套"); //为容器添加标题
jf.setBounds(600, 400, 300, 200); //设置jf容器在屏幕中出现的位置以及大小
jf.setDefaultCloseOperation(2); //设置jf容器关闭方式
JTextArea ja= new JTextArea("我是文本框",3,9);
JScrollPane js = new JScrollPane(ja);
JPanel jp1 = new JPanel(new GridLayout(6,9,10,10)); //创建jp1面板
for(int i=0;i<54;i++) {
jp1.add(new JButton("jp1 按钮"+i)); //向jp1面板中添加按钮组件
}
JScrollPane js1 = new JScrollPane(jp1); //将jp1面板添加到js1滚动窗体中
JPanel jp2 = new JPanel(); /创建jp2面板
jp2.setLayout(null); //jp2取消布局管理器
jp2.add(js1); //将js1添加到jp2
js1.setBounds(10,10,200,150);
JPanel jp3 = new JPanel(new GridLayout(5,9,10,10)); //创建jp3面板
for(int i=0;i<18;i++) {
jp3.add(new JButton("jp3 按钮"+i)); //jp3面板添加按钮
}
JPanel jp4 = new JPanel(); //创建jp4面板
jp4.setLayout(new GridLayout(2,1,10,10)); //网格布局
jp4.add(jp2); //将jp2添加到jp4
jp4.add(jp3); //将jp3添加到jp4
JScrollPane js2 = new JScrollPane(jp4); //将jp4添加到js2
jf.add(js2);
jf.setVisible(true); //设置jf容器可见
}
public static void main(String[] args) {
new JScrollPaneTest03();
}
}
jp2.setLayout(null); //jp2取消布局管理器,实现了嵌套
//jp2.setLayout(null); //注释该句后,只有外层JS面板存在
尝试过更改jp2、jp4的布局管理器,但都以失败告终
将jp1面板更改为文本框,是可以在不使用绝对布局情况下实现嵌套,但需要赋超过文本区域的初始值内容