joptionpane中的数组下拉 - Java?

时间:2009-12-16 20:37:58

标签: java

您好我正在尝试访问一个数组并使用joptionpane在下拉列表中显示它。我有点工作:

for (int i = 0; i < data.length; r++)
{

    Object list = JOptionPane.showInputDialog(null, "Select Code",
    "Code", JOptionPane.QUESTION_MESSAGE, null, data[i][0], data[0][0]);
}

这会打开一个下拉列表...但只有一个数据并显示大约5次(数组长度)。我怎样才能在一个下拉列表中显示每个数据?

编辑 - 忘记说当使用数据[i] [0]时它会带来错误,因为它只允许我使用数据[i]? - “找不到符号”

由于

2 个答案:

答案 0 :(得分:2)

它不应该是一个循环。

public static Object showInputDialog(Component parentComponent,
                                     Object message,
                                     String title,
                                     int messageType,
                                     Icon icon,
                                     Object[] selectionValues,
                                     Object initialSelectionValue)

您确定要传递selectionValues 对象数组和initialSelectionValue对象吗?

什么是数据类型?假设data [0]是一个数组,请尝试

JOptionPane.showInputDialog(null, "Select Code",
    "Code", JOptionPane.QUESTION_MESSAGE, null, data, data[0]);

您能告诉您数据的确切类型吗?来自JDK的这个例子

Object[] possibleValues = { "First", "Second", "Third" };
Object selectedValue = JOptionPane.showInputDialog(null,    
            "Choose one", "Input",   
            JOptionPane.INFORMATION_MESSAGE, null,
            possibleValues, possibleValues[0]);

非常适合我。

答案 1 :(得分:0)

这来自Java API:

public static Object showInputDialog(Component parentComponent,
                                     Object message,
                                     String title,
                                     int messageType,
                                     Icon icon,
                                     Object[] selectionValues,
                                     Object initialSelectionValue)

请注意,selectionValues是一个单维数组。当您输入数据[i] [0]时,您给它一个值。当您输入数据[i]时,您将提供数组的单行,作为一维数组。 (回想一下,java没有n维数组,只有数组数组。)

您可能需要构建一个新的一维数组,然后将其输入。

或者,如果可能,将数组的行转换为某个对象,并在该类中实现toString()方法以显示所需内容。