0

如何覆盖JPanel后代的默认布局管理器?我有自己的班级,想null成为默认班级。

4

3 回答 3

5

使用JPanel接受 a 的构造函数LayoutManager

import java.awt.LayoutManager;

import javax.swing.JPanel;

public class MyPanel extends JPanel {
    public MyPanel() {
        this(true);
    }

    public MyPanel(boolean isDoubleBuffered) {
        super(null, isDoubleBuffered);
    }

    public MyPanel(LayoutManager layout, boolean isDoubleBuffered) {
        super(layout, isDoubleBuffered);
    }

    public MyPanel(LayoutManager layout) {
        this(layout, true);
    }
}
于 2013-02-22T15:22:10.710 回答
2

您可以将初始化程序块添加到您的子类:

public class MyPanel extends JPanel {

    {
         setLayout(null);
    }

    // ... class implementation
}
于 2013-02-22T15:34:18.190 回答
1
JPanel panel = new JPanel();
panel.setLayout(new MyLayout());

或者

contentPane.setLayout(null);
于 2013-02-22T15:22:31.190 回答