将int传递给对话框并返回类

时间:2014-11-21 15:16:50

标签: java swing

java和swing的新手,请在答案中详细说明。

我有一个有5个整数的课程。

在我的jframe上我有一个按钮,当你点击它时,它应该打开一个带有5个组合框和一个ok按钮的对话框。

我想将一个int传递给对话框,告诉它在第一个组合框中放入多少个itmens,其他4个具有固定值。

按下ok对话框,从组合框中获取值,并填写一个类实例并返回该实例。

我已经阅读了很多教程,我知道我需要一个自定义类但不知道如何在netbeans中创建它,新类只给我一个代码编辑而没有设计视图。

我不知道如何调用自定义类对话框或将其传递给varialble。

请不要链接我here iv至少阅读一百次。

编辑:iv试过的。

我尝试在netbeans中制作一个cunton Dialog,但它将它构建到主框架中。我尝试在课堂上制作它,但我不知道如何调用该类,并且我确定类代码是错误的。

2 个答案:

答案 0 :(得分:2)

JOptionPane的show__Dialog方法接受“消息”的对象。这可以是任何东西:即您创建的自定义JPanel。

创建一个JPanel,将你的组合框放入其中,在JOptionPane中显示它,然后检索你需要的东西。

这是一个非常简短的例子:

enter image description here

SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        JPanel    panel = new JPanel();
        JCheckBox check = new JCheckBox("Yes or no?");
        panel.add(check);

        JOptionPane.showMessageDialog(null, panel);
        JOptionPane.showMessageDialog(null,
            "You entered " + (check.isSelected() ? "yes" : "no") + "."
        );
    }
});

(JCheckBox也可以直接传递给showMessageDialog。)

JOptionPane doc对于如何处理message非常具体。在“参数:消息”下查看。根据文档,你甚至可以传递JComboBox[]

答案 1 :(得分:1)

执行此操作的一种方法是使用一个方法接受您的int并具有您想要返回的类的返回值的自定义Dialog。

现在,您将在调用类中创建此对话框的新实例。这应该尽可能地设置对话框,但不能将其切换为可见。

现在,当调用触发方法时,您可以将组合框切换到正确的设置,将对话框设置为可见,wait for the Ok button to be pressed,组合返回对象并将其发回。