java - 减小 jdialog 的大小

标签 java swing user-interface jdialog

我必须创建一个自定义 jdialog,但我希望它小一点。它不应该有空白空间。下面的代码给了我这个:

Gui

如果我使用 setSize 减小大小,则会导致如下所示的错误 GUI:

BadGui

class Find extends JDialog
{
    JPanel f1,f2,f3,rp;
    JLabel fl,filler1,filler2,filler3;
    JTextField ft,fillert;
    JCheckBox mcase;
    JButton fb1,fb2;
    JRadioButton upr,dr;
    ButtonGroup rg;
    public Find()
    {
        setTitle("Find");

        f3 = new JPanel();
        f3.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        f3.setLayout(new GridLayout(3,1));

        f1 = new JPanel();
        f1.setLayout(new BoxLayout(f1,BoxLayout.X_AXIS));
        f2 = new JPanel();
        f2.setLayout(new BoxLayout(f2,BoxLayout.X_AXIS));

        fl = new JLabel("Find what: ");
        ft = new JTextField();

        fb1 = new JButton("  Find  ");
        mcase = new JCheckBox("Match case",false);
        fb2 = new JButton("Cancel");
        rg = new ButtonGroup();
        upr = new JRadioButton("Up");
        dr = new JRadioButton("Down");
        rg.add(upr);
        rg.add(dr);
        rp = new JPanel();
        rp.add(upr);
        rp.add(dr);

        filler1 = new JLabel(" ");
        filler2 = new JLabel(" ");

        f1.add(fl);
        f1.add(ft);
        f1.add(filler1);
        f1.add(fb1);

        f2.add(mcase);
        f2.add(rp);
        //f2.add(filler2);
        //f2.add(fb2);

        f3.add(f1);
        //f3.add(new JLabel());
        f3.add(f2);

        add(f3);
        setSize(400,120);
        setAlwaysOnTop(true);
        setResizable(false);
        setVisible(true);
    }
}

最佳答案

您的 f3 JPanel 有一个包含 3 行的 GridLayout,第三行是空的。

您只需要 2 个,所以请尝试:

f3.setLayout(new GridLayout(2,1));

或者:

f3的LayoutManager更改为垂直的BoxLayout

f3.setLayout(new BoxLayout(f3, BoxLayout.Y_AXIS));

并降低JDialog的高度:

setSize(400,100);

关于java - 减小 jdialog 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35607083/

相关文章:

java - 如何通过文本 Pane 隐藏 Swing 加速器?

powershell - .add_Click({}) 的范围问题

c++ - 我应该如何使用带有布局和小部件的 QGraphicsScene

java - 如何使用推送机器人在我现有的 Android 应用程序中添加推送通知

java - 如何从 Java codahale Metrics Timers 中清除历史统计数据

java - 无法获取引用(Mongodb/Morphia)

java - 无法在另一个文本字段中添加和显示文本字段值

java - 尝试使用正确的行标题创建 JTable

使用 GridLayout 的 Java 相册

android - 在显示 UI 的 android 服务中检测 'home button pressed' 事件(类似于 facebook 聊天头)