gpt4 book ai didi

java - 将元素与不工作的特定元素匹配 JList ActionListener

转载 作者:行者123 更新时间:2023-12-02 03:28:21 24 4
gpt4 key购买 nike

我正在开发一个需要一系列联系人的程序,并且我正在尝试返回一个整数,表示有多少人在线。我已经实现了一个名为刷新的按钮。我按 JFrame 上的“刷新”按钮,它将刷新 JLabel onlineCountNum,它最初是一个空字符串。按刷新后,显示 1 包括在线用户。但是,当我登录另一个用户并按下刷新按钮时,该用户的值不会增加,而是保持为 1。 JList listContacts 包含带有 name 或 name(Online) 的元素。我正在尝试计算其中有多少人有名字(在线)。如果该用户是服务器上唯一的用户,则结果应显示 1。如果服务器上有两个人,则两个人都应显示 2,并且两人都会在 Pane 上看到另一个人的名称(在线)。

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));
}

}

最佳答案

if(list.getElementAt(i).equals(list.getElementAt(i)+"(Online)"))

是的,这错误的根源...

现在,假设:

list.getElementAt(i) == "someName(Online)"

您在 if 语句中检查的是:

list.getElementAt(i) == list.getElementAt(i)+"(Online)"

这就像检查:

"someName(Online)" == "someName(Online)(Online)"

所以它总是返回 false。

<小时/>

你需要做的是:

if(list.getElementAt(i).endsWith("(Online)"))

关于java - 将元素与不工作的特定元素匹配 JList ActionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38470937/

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