z11397444 发表于 2019-7-27 10:58:33

java swing类中的JScrollPane问题

在JScrollPane面板中加入JPane面板,然后再JPane面板中加入一系列的JTextPane组件。
运行 之后发现 JScrollPane的滚动条无法显示。
在网上找过答案,说是使用JPane的setPreferredSize(new Dimension(width, height))方法,
尝试过后没有效果,不知道是哪里出了问题。
希望大佬们帮我解决一下。


import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class TestScrollPane {
        public static void main(String[] args) {
                JFrame frame=new JFrame();
                JPanel panel=new JPanel();
                panel.setLayout(null);
                panel.setPreferredSize(new Dimension(200,300));
               
                for (int i = 0; i < 10; i++) {
                        JTextPane textPane=new JTextPane();
                        textPane.setBounds(0, 105*i, 200, 100);
                        panel.add(textPane);
                }
                JScrollPane scrollPane=new JScrollPane(panel);
                frame.add(scrollPane);
                frame.setSize(1366,768);
                frame.setVisible(true);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
}

卢可耐 发表于 2019-7-27 19:43:29

可能是因为没有选择绝对面板AbstractJpanel

z11397444 发表于 2019-8-6 10:33:01

经过两天的学习和测试,发现是panel内部的组件大小要与panel组件相匹配,所以需要设置panel的size与JTextPane想适应。
应该将13行删除,在18行后加入
panel.setPreferredSize(new Dimension(150,105*i));
这一行代码,滚动条就会随着内部组件的增多而显现出来。
页: [1]
查看完整版本: java swing类中的JScrollPane问题