Java 将ArrayList转换为DefaultListModel
我是Java初学者。我确实需要从array或ArrayList返回Java 将ArrayList转换为DefaultListModel,java,arrays,swing,jlist,Java,Arrays,Swing,Jlist,我是Java初学者。我确实需要从array或ArrayList返回DefaultTableModel(javax.swing)。有可能吗?我无法将数组插入到DefaultTableModel(构造函数)中 代码如下: private DefaultListModel model; public DefaultListModel getNamesAndIdToCombobox(Connection conn, boolean closeConn, String sql) throws SQLE
DefaultTableModel
(javax.swing
)。有可能吗?我无法将数组插入到DefaultTableModel
(构造函数)中
代码如下:
private DefaultListModel model;
public DefaultListModel getNamesAndIdToCombobox(Connection conn, boolean closeConn, String sql) throws SQLException {
long counter = 0;
try {
Statement stmt =
conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// String longKey = (String)rs.getString(2);
try
{
jListList.add(new JListValues(rs.getLong(2), rs.getString(1)));
}
catch(SQLException sqlException){}
try
{
jListList.add(new JListValues(rs.getLong(2), rs.getLong(1)));
}
catch(SQLException sqlException){}
try
{
jListList.add(new JListValues(rs.getString(2), rs.getLong(1)));
}
catch(SQLException sqlException){}
counter++;
}
JListValues[] array = jListList.toArray(new JListValues[jListList.size()]);
model = new DefaultListModel(array); // HERE IT IS A PROBLEM
LOGGER.info("getNamesAndIdToCombobox result count: " + counter);
} catch (SQLException e) {
LOGGER.error("Error", e);
throw e;
} finally {
try {
if (closeConn == true)
conn.close();
} catch (Exception e) {/* null */
}
}
return model;
}
添加以下代码以将arraylist值添加到
DefaultListModel
应该可以工作:
DefaultListModel<JListValues> model = new DefaultListModel<>()
for(JListValues val : array)
model.addElement(val);
DefaultListModel=new DefaultListModel()
对于(JListValues:array)
模型.加法(val);
使用以下方法,无需遍历数据集,效率更高。JList<String> jlist = new JList<String>(new String[]{"a","b","c","d"});
DefaultListModel<String> defaultListModel = (DefaultListModel<String>)jlist.getModel();
ArrayList<String> arrayList = Collections.list(defaultListModel.elements());
JList JList=new JList(新字符串[]{“a”、“b”、“c”、“d”});
DefaultListModel DefaultListModel=(DefaultListModel)jlist.getModel();
ArrayList ArrayList=Collections.list(defaultListModel.elements());
到底是什么问题?因此,创建一个循环,将值逐个复制到向量,然后使用向量创建DefaultListModel。或者,只需将值加载到向量中,就不需要进行复制。另外,澄清你的问题。有时您引用一个TableModel,有时您引用一个ListModel。将JListValues
放在new DefaultListModel()
的菱形
内,也就是说:DefaultListModel=new DefaultListModel()
它做的与OP要求的相反,顺便说一句