【发布时间】:2016-07-20 01:32:16
【问题描述】:
我正在开发一个程序,该程序需要一组联系人,并且我正在尝试返回一个整数,表示在线人数。我已经实现了一个名为刷新的按钮。我按下 JFrame 上的“刷新”按钮,它将刷新 JLabel onlineCountNum,它最初是一个空字符串。按刷新后,它显示 1 以包含在线用户。但是,当我登录另一个用户并按下刷新按钮时,它不会增加,而是为该用户保持在 1。 JList listContacts 具有名称或名称(在线)的元素。我试图计算其中有多少人有名字(在线)。如果用户是服务器上唯一的用户,则结果应显示为 1。如果服务器上有两个人,它应该为两个人显示 2,并且两个人都会在窗格中看到另一个人作为名称(在线)。
private JLabel onlineCountNum; //label gets refreshed by button
private JLabel onlineCountText; //"Online Count: " label
private JButton onlineCountUpdate; //refresh button
onlineCountText = new JLabel("Online Count: ");
onlineCountNum = new JLabel("ERROR");
onlineCountUpdate = new JButton("Refresh");
onlineCountNum.setText("");
onlineCountUpdate.addActionListener(new MyButtonListener6());
class MyButtonListener6 implements ActionListener{
public void actionPerformed(ActionEvent e){
int count = 1;
ListModel list = listContacts.getModel();
for(int i = 0; i < list.getSize(); i++){
if(list.getElementAt(i).equals(list.getElementAt(i)+"(Online)")){ //possible source of error
count++;
}
}
onlineCountNum.setText(String.valueOf(count));
}
}
【问题讨论】:
标签: java swing actionlistener jlist