且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

JLayeredPane 不使用 JFrame 调整大小

更新时间:2023-12-05 18:59:16

回答我自己的问题

有一个非常 hack-y 的修复,它(出于您的目的)是始终将叠加层保持在最大尺寸.

There is a very hack-y fix, which (for your purposes) is to keep the overlay at max size at all times.

public CreatorUI(){

    componentMover.setAutoLayout(true);

    backgroundPane = new BackgroundUI().initComponents();
    moveablePane.setLayout(null);
    moveablePane.setOpaque(false);
    moveablePane.setSize(Toolkit.getDefaultToolkit().getScreenSize());

    layers.setLayout(new BorderLayout());


    layers.setLayer(moveablePane, JLayeredPane.DRAG_LAYER);
    layers.add(moveablePane, BorderLayout.CENTER);

    layers.setLayer(backgroundPane, JLayeredPane.DEFAULT_LAYER);
    layers.add(backgroundPane, BorderLayout.CENTER);


    add(layers, BorderLayout.CENTER);
    layers.setPreferredSize(backgroundPane.getPreferredSize());

    pack();
}