如何设置 JPanel 固定大小以使 JScrollPane (滚动)出现?

Pai*_*Han -3 java swing jpanel jscrollpane preferredsize

我正在编写一些代码。JFrame包含JPanel具有特定尺寸的。这是我的代码:

import javax.swing.*; 
import java.awt.*; 

public class ScrollPane extends JFrame { 

    public ScrollPane() {
        super("Title");
        setLayout(new BorderLayout());
        setSize(320,240);

        JScrollPane scroller = new JScrollPane(new DrawingPane()); 
        scroller.setPreferredSize(new Dimension(320,240)); 

        add(scroller); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    } 

    private class DrawingPane extends JPanel {
        public DrawingPane(){
            super();
            setSize(640,480);
            setMinimumSize(new Dimension(320,240));
        }

    }

    public static void main(String[] args) {
        new ScrollPane();
    } 
}
Run Code Online (Sandbox Code Playgroud)

即使设置了最小尺寸JPanel,卷轴也不会出现。

cam*_*ckr 5

所有组件都负责确定首选尺寸,以便布局管理器可以正常工作。进行自定义绘画时,您需要覆盖getPreferredSize()自定义组件的 Dimension 以返回组件的尺寸。

请阅读 Swing 教程中有关自定义绘画的部分,以获取更多信息和工作示例。