繁体   English   中英

从 JPanel 创建自定义对话框

[英]create a custom dialog from a JPanel

我想从 JPanel 创建一个对话框,我遇到的问题是 Dialog class 和 JOptionPane class 这是我读到的关于使用模板的主要对话框类(一个例子是你的“文本”,然后是取消和确认按钮)。 我想创建一个包含我的 JPanel 的自定义对话框。 我基本上想在屏幕上显示整个 JPanel,而不需要制作新的 JFrame 或重用现有的。

谢谢!

在大多数情况下, JOptionPane非常灵活,例如,从简单的东西开始......

import java.awt.GridBagLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        setBorder(new EmptyBorder(32, 32, 32, 32));
        JLabel label = new JLabel("Hello world");
        label.setFont(label.getFont().deriveFont(32f));
        add(label);
    }

}

我可以...

在此处输入图像描述

JOptionPane.showMessageDialog(null, new TestPane());

啊,但是等等,你可能不想要这个图标,所以你可以做类似的事情......

在此处输入图像描述

JOptionPane.showMessageDialog(null, new TestPane(), "Hello", JOptionPane.PLAIN_MESSAGE);

...您是什么意思,您想要自定义选项?,好吧, JOptionPane也可以处理...

在此处输入图像描述

String[] options = new String[]{
    "options",
    "your",
    "are",
    "These"
};

int result = JOptionPane.showOptionDialog(null, new TestPane(), "Hello", JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[3]);
if (result >= 0) {
    System.out.println(options[result]);
}

现在,只要稍加思考和努力,您还可以:

JOptionPane是一个不错的选择,但它不是您拥有的唯一选择。 您可以推出自己的“工厂”(如JOptionPane ),它完成了构建JDialog 、生成按钮/选项和处理用户输入(在这些操作上)的所有繁重工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM