使用方法参数在 JOptionPane 中选择图标类型

Choosing type of icon in JOptionPane with method argument

我试图尽可能不重复代码,我目前被困在(我认为是)非常简单的问题上,但我无法弄清楚。我已经浏览过 SO 但我找不到类似的问题所以我在这里。

public void displayPrompt(String promptMessage, ?????) { 
    
    JOptionPane.showInputDialog(this, promptMessage, JOptionPane.QUESTION_MESSAGE);
    
}

这是我目前正在研究的方法。我必须传递什么参数来代替 ????? 才能将 JOptionPane.QUESTION_MESSAGE 更改为,比方说,WARNING_MESSAGE

QUESTION_MESSAGE 的描述告诉我它是一个整数:

int javax.swing.JOptionPane.QUESTION_MESSAGE = 3 [0x3]

QUESTION_MESSAGE

public static final int QUESTION_MESSAGE

这是否意味着我 实际上 可以传递一个整数来操作它?

示例:

public void displayPrompt(String promptMessage, int i) { 

    JOptionPane.showInputDialog(this, promptMessage, JOptionPane.i);
}

这将是最合乎逻辑的解释,但问题是 eclipse 不允许我这样做。

您可以将 JOptionPane 的静态字段之一作为参数传递给您的方法,并在调用 showInputDialog 时使用该值。

JOptionPane.showInputDialog(this, promptMessage, i);

当你调用方法时,你会做这样的事情:

displayPrompt("prompt", JOptionPane.QUESTION_MESSAGE);
// or
displayPrompt("prompt", JOptionPane.WARNING_MESSAGE);

将您的方法修改为:

public void displayPrompt(String promptMessage, int i) { 

JOptionPane.showInputDialog(this, promptMessage, i);

}

然后这样称呼它:

displayPrompt("Text message for dialog", JOptionPane.QUESTION_MESSAGE);

测试有效。希望这能回答您的问题。