java - JDialog 允许用户只改变对话框的宽度

标签 java swing jdialog

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

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

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

提前致谢。

最佳答案

您可以向 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);
            }
        });
    }
}

关于java - JDialog 允许用户只改变对话框的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023633/

相关文章:

java - 如何从Java算法的乱序字符串中检索原始字符串

java - paintComponent 有时只调用

java - 切换焦点后模态对话框隐藏在主框架后面

java - 如何导入JFrame?

java - 如何在 JTextArea 或 JTextPane 中显示多个插入符号

java - 从另一个类中处置 JDialog

java - 从 JOptionPane.showOptionDialog 返回对话框

java - Spring 警告 : Request method 'HEAD' not supported

java - J2ME : How to press keypad programmatically?

java - 将 fragment 设置为 Activity 开始时的布局