gpt4 book ai didi

java - 如何用另一个 JList 的数据填充 JList

转载 作者:行者123 更新时间:2023-11-29 01:23:19 26 4
gpt4 key购买 nike

我有一个 MySQL 数据库,其中包含我想填充到我的 Java 程序中的 JList 中的数据。我有两个 JList,一个填充事件标题,第二个填充客人姓名。

我想要的是当用户单击任何事件标题时,第二个 JList 将显示属于该事件的所有 guest 姓名。

我已经成功地用所有事件标题填充了第一个 JList。我遇到的问题是当用户单击事件标题时, guest 姓名将在第二个 JList 上显示两次。我怎样才能让它只显示一次?

这是我到目前为止得到的...

Java 类

private JList getJListEvents() {
if (jListEvents == null) {
jListEvents = new JList();
Border border = BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(1, Color.black, Color.black), "Events", TitledBorder.LEFT, TitledBorder.TOP);
jListEvents.setBorder(border);
jListEvents.setModel(new DefaultListModel());
jListEvents.setBounds(new Rectangle(15, 60, 361, 421));

Events lEvents = new Events();
lEvents.loadEvents(jListEvents);

jListEvents.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
EventC eventC = new EventC();
//eventC.MonitorRegDetailsInfo(jListEvents, jTextFieldEventName, jTextFieldEventVenue, jTextFieldEventDate, jTextFieldEventTime, jTextAreaEventDesc);
//eventC.MonitorRegPackageInfo(jListEvents, jTextFieldBallroom, jTextFieldBallroomPrice, jTextFieldMeal, jTextFieldMealPrice, jTextFieldEntertainment, jTextFieldEntertainmentPrice);
eventC.MonitorRegGuest(jListEvents, jListGuest);
}
});
}
return jListEvents;
}

Controller 类

public void MonitorRegGuest(JList l, JList l2){
String event = l.getSelectedValue().toString();
Events retrieveGuest = new Events(event);
retrieveGuest.loadGuests(l2);
}

类所有的sql语句

public void loadGuests(JList l){
ResultSet rs = null;
ResultSet rs2 = null;
ResultSet rs3 = null;
MySQLController db = new MySQLController();
db.getConnection();

String sqlQuery = "SELECT MemberID FROM event WHERE EventName = '" + EventName + "'";
try {
rs = db.readRequest(sqlQuery);
while(rs.next()){
MemberID = rs.getString("MemberID");
}
} catch (SQLException e) {
e.printStackTrace();
}

String sqlQuery2 = "SELECT GuestListID FROM guestlist WHERE MemberID = '" + MemberID + "'";
try {
rs2 = db.readRequest(sqlQuery2);
while(rs2.next()){
GuestListID = rs2.getString("GuestListID");
}
} catch (SQLException e) {
e.printStackTrace();
}

String sqlQuery3 = "SELECT Name FROM guestcontact WHERE GuestListID = '" + GuestListID + "'";
try {
rs3 = db.readRequest(sqlQuery3);
while(rs3.next()){
((DefaultListModel)l.getModel()).addElement(rs3.getString("Name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
db.terminate();
}

提前致谢!

最佳答案

请暂时忘记SQL。然后按照以下步骤操作:

  1. the example 开始---对应Java Web Start link .
  2. 试用示例,了解如何将元素添加到列表。
  3. 然后您需要做的就是获取对您要复制的元素的引用,并为每个元素复制它,然后将其添加到第二个列表。
  4. 喜欢 Java。

编辑:我仍在查看您的代码,我仍然对发生的事情感到困惑(请考虑制作一个 SSCCE )。但是让我猜猜,因为某些事情告诉我,当您调用 ListSelectionListener 时,您没有使用 getIsValueAdjusting() ListSelectionEvent,对吗?因此,这也可能是它,for more read here .

关于java - 如何用另一个 JList 的数据填充 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com