[英]How to use ArrayList to populate choice list in a form
我需要填充的形式的选择组分与ArrayList的存在于外部类(同一个包)的
DatabaseList.java:软件包pmi.sqltoxml;
import java.util.ArrayList;
public class DatabaseList {
public void SetLista() {
ArrayList<String> db = new ArrayList<>();
db.add("ADB_PMISOFTWARE");
db.add("ADB_DEMO");
}
}
MainForm.java:
public class Mainform extends javax.swing.JFrame {
DatabaseList db = new DatabaseList();
public Mainform() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
choice1 = new java.awt.Choice();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
choice1.setName("dbList"); // NOI18N
for (String dbItem : db ){
choice1.add(dbItem);
}
...
Netbeans告诉我
for-each
不适用于表达式类型。 必需Array
或java.lang.iterable
。 找到:DatabaseList
。
但是, ArrayList
不是iterable
接口吗?
您必须返回列表:
public List<String> setLista() {
List<String> db = new ArrayList<>();
db.add("ADB_PMISOFTWARE");
db.add("ADB_DEMO");
return db;//<------You have to return the list otherwise you can't use this array list
}
那么您可以像这样调用您的方法:
for (String dbItem : db.setLista()){
choice1.add(dbItem);
}
将db
List设为类的private
成员,并在DatabaseList
类中添加getter( getDb()
)并对其进行迭代( for (String dbItem: db.getDb())
)。
或者只是使一个getList()
方法将返回List
:
public class DatabaseList {
public void getLista() {
ArrayList<String> db = new ArrayList<>();
db.add("ADB_PMISOFTWARE");
db.add("ADB_DEMO");
return db;
}
}
for (String dbItem : db.getLista()){
choice1.add(dbItem);
}
您的自定义类DatabaseList
本身不是List
/ Iterable
而是一个包装器,因此不能在增强的for循环中使用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.