但却仍提示java.lang.NullPointerException。
已经测试过,字符串m.getContext不为空,是字符串“1”。
public void updateUserList(Message m){
String onlineFriend[] = m.getContext().split(" ");
System.out.println("接收到更新信息"+m.getContext());
for(int i=0;i<onlineFriend.length;i++)
{
jl [Integer.parseInt(onlineFriend[i])-1].setEnabled(true);//该行一直报错
}
}
查看j1是在哪定义的 进入for循环输出一下onlineFriend[i]看看值是什么
那说明你j1未初始化,导致的NullPointerException
没看懂 你把J1发出来康康
补充一下,这是我的其他代码
package client;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import common.*;
import tools.*;
public class UserList extends JFrame implements MouseListener{
JPanel jph1;
JPanel jph2;
JButton button1;//好友按钮
JScrollPane jsp;//承载好友列表的滚表
JOptionPane jo;//点击确认框
JLabel []jl;//定义在这里
/*public static void main(String[] args){
UserList ul = new UserList();
}*/
public UserList (String ownUid){
jph1 = new JPanel(new BorderLayout());//最外层
jph2 = new JPanel(new GridLayout(50,1,4,4));//内层存放好友卡片,假设有50个好友
button1 = new JButton("我的好友");
jsp = new JScrollPane(jph2);//将好友卡片放入滚表
jo = new JOptionPane();
//好友列表初始化50个
JLabel []jl = new JLabel[50];//初始化在这里
for(int i = 0;i<jl.length;i++){
jl[i] = new JLabel(i+1+"",new ImageIcon("image/Taichi.jpg"),JLabel.LEFT);//初始化好友头像与序列号
jl[i].setEnabled(false);//默认不在线
if(jl[i].getText().equals(ownUid)){
jl[i].setEnabled(true);
}
}
//更新在线好友情况
public void updateUserList(Message m){
String[] onlineFriend = m.getContext().split(" ");
System.out.println("接收到更新信息"+m.getContext());
for(int i=0;i<onlineFriend.length;i++)
{
jl [Integer.parseInt(onlineFriend[i])-1].setEnabled(true);//报错在这里
}
}