JDialog允许用户仅更改对话框的宽度

时间:2011-11-05 22:07:25

标签: java swing jdialog

有谁知道是否可以限制用户调整JDialog的大小?

我知道我可以调用方法setResizible(boolean)并且禁用或允许用户调整JDialog的大小,但有没有办法限制用户更改窗口的高度但允许他更改宽度?

我正在创建的对话框看起来很有趣,如果它垂直增长但水平增长组件可能对用户有利。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您可以向JDialog添加ComponentListener,如果身高发生变化,请检查componentResized。这可以通过以这种方式扩展JDialog类来实现:

public class Dialog extends javax.swing.JDialog {

    public Dialog(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        final int h = getHeight();
        addComponentListener(new ComponentAdapter() {

            @Override
            public void componentResized(ComponentEvent e) {
                Rectangle b = getBounds();
                if (b.height != h) {
                    b.height = h;
                    setBounds(b);
                }
                super.componentResized(e);
            }
        });
    }
}