我正在尝试学习Java并且已经从PHP走了很长一段路,我在创建代码时尝试应用相同的心态。但是,正如你们许多人已经知道的那样,它并不那么容易。
所以说,我有一个问题。我想从ArrayList
中的项目创建一个下拉列表。我喜欢使用JOptionPane.showInputDialog()
方法来尝试这个的想法。
这就是我目前的情况,但是我收到错误消息告诉我no suitable method found for showInputDialog
ArrayList<String> projectList = new ArrayList<String>();
while(results.next())
projectList.add(results.getString("project"));
String inputDialog = (String)JOptionPane.showInputDialog(this, "Choose project to open", "Open Project", JOptionPane.PLAIN_MESSAGE, null, projectList, "--");
我知道问题是,当我将ArrayList
作为数组对象传递时,我会抛出此错误。但如果我做了像
Object[] projectList = {"one", "two"};
然后它按预期工作,然后尝试执行此操作并传入projects
作为我的数组对象。
Object[] projects = {projectList.toString()};
这有点奏效,但输出在下拉列表中看起来像"one, two"
为1行。
答案 0 :(得分:2)
如果需要,您可以使用List.toArray()将ArrayList
转换为Object[]
,即:
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
Object[] result = list.toArray();
答案 1 :(得分:1)
projectList是一个ArrayList,将其转换为数组,然后将其传递给方法JOptionPane.showInputDialog()。请检查List.toArray()方法。
String [] projects = projectList.toArray(new String[projectList.size()]);
答案 2 :(得分:1)
尝试以下
Object[] projectListArray =new Object[projectList.size()];
projectList.toArray(projectListArray);
String inputDialog = (String)JOptionPane.showInputDialog(this, "Choose project to open", "Open Project", JOptionPane.PLAIN_MESSAGE, null, projectListArray , "--");
希望它有所帮助。