Bab*_*ger 1 java user-interface swing joptionpane
我在这里关注API:
我有一个项目列表,我想在提示窗口的ComboBox中显示.来自JOptionPane的showInputDialog方法允许我这样做,但它限制了我两个按钮(确定和取消).我想有更多按钮(我可以定义更多按钮,但我不知道如何使用showInputDialog将其添加到此窗口).
我可以使用showOptionDialog创建一个选项数组(包含我需要的所有按钮),但是提示窗口无法显示我的项目列表.通常接受项目数组的参数(在showInputDialog中)现在需要一个按钮数组.
Object[] selectionValues replaced by Object[] options
Run Code Online (Sandbox Code Playgroud)
有没有办法结合他们的功能?
我可以在技术上创建一个新的GUI来实现这一点,但如果已经有一个现有的实现,我可能会做很多不必要的工作.此外,在能够对原始帧执行任何操作之前,用户在新提示窗口上完成任务非常重要.
所以最后,这应该发生:
您可以创建一个包含JComboBox的JPanel,然后将其放入任何您想要作为Object参数的JOptionPane中.
例如,
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
public class JComboFun {
public static void main(String[] args) {
String[] weekdays = { "Monday", "Tuesday", "Wednesday", "Thursday",
"Friday" };
final JComboBox<String> combo = new JComboBox<>(weekdays);
String[] options = { "OK", "Cancel", "Fugedaboutit" };
String title = "Title";
int selection = JOptionPane.showOptionDialog(null, combo, title,
JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null,
options, options[0]);
if (selection > 0) {
System.out.println("selection is: " + options[selection]);
}
Object weekday = combo.getSelectedItem();
if (weekday != null) {
System.out.println("weekday: " + weekday);
}
}
}
Run Code Online (Sandbox Code Playgroud)