java和swing的新手,请在答案中详细说明。
我有一个有5个整数的课程。
在我的jframe上我有一个按钮,当你点击它时,它应该打开一个带有5个组合框和一个ok按钮的对话框。
我想将一个int传递给对话框,告诉它在第一个组合框中放入多少个itmens,其他4个具有固定值。
按下ok对话框,从组合框中获取值,并填写一个类实例并返回该实例。
我已经阅读了很多教程,我知道我需要一个自定义类但不知道如何在netbeans中创建它,新类只给我一个代码编辑而没有设计视图。
我不知道如何调用自定义类对话框或将其传递给varialble。
请不要链接我here iv至少阅读一百次。
编辑:iv试过的。我尝试在netbeans中制作一个cunton Dialog,但它将它构建到主框架中。我尝试在课堂上制作它,但我不知道如何调用该类,并且我确定类代码是错误的。
答案 0 :(得分:2)
JOptionPane的show__Dialog
方法接受“消息”的对象。这可以是任何东西:即您创建的自定义JPanel。
创建一个JPanel,将你的组合框放入其中,在JOptionPane中显示它,然后检索你需要的东西。
这是一个非常简短的例子:
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,组合返回对象并将其发回。