这是我的代码的一部分,但我不知道为什么当我点击列表时它为我显示两个聊天框架? 这也是一个127.0.0.1 IP地址的客户端/服务器应用程序。你能帮我吗?
private InformationClass client;
private static DefaultListModel model = new DefaultListModel();
private ListSelectionModel moDel;
/** Creates new form ListFrame */
public ListFrame(InformationClass client) {
initComponents();
this.client = client;
jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
fillTable();
}
private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
ChatFrame frame = new ChatFrame(client);
frame.setVisible(true);
}
public void fillTable() {
try {
List<InformationClass> list = null;
list = Manager.getClientListFromMySQL();
if (list == null) {
JOptionPane.showMessageDialog(this, "You should add a person to your list", "Information", JOptionPane.OK_OPTION);
return;
} else {
for (int i = 0; i < list.size(); i++) {
InformationClass list1 = list.get(i);
model.add(i, list1.getId());
}
jList1.setModel(model);
}
} catch (SQLException ex) {
Logger.getLogger(ListFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:0)
jList1ValueChanged
被调用两次。一次使用evt.getValueIsAdjusting()
true
,一次使用false
。
为什么在选择更改时打开框架而不添加按钮来打开框架,或者双击列表做出反应?
修改强>:
如果您真的想对点击做出反应,只需使用mouseClicked
事件即可。然后,将忽略按键盘更改选择。