Java添加事件监听器以及Socket通信


 //给Start按钮设置事件监听器
 Start_b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        message_t.append("Server starting…");
        ​ new Thread(new Runnable() {
            public void run(){
                try{
                ss=new ServerSocket(Integer.parseInt(Port_t.getText()))    ;
                s=ss.accept();
                message_t.append("Client connected…");
                while(true){
                    BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
                    String r;
                    r=br.readLine();
                    while(r!=null){
                        message_t.append(r+ "\n");
                        r=br.readLine();
                    }
                }
                }catch(IOException e){     }
            }
        }).start();
    }
});

想问一下,这里有两处花括号写在圆括号里面了,是什么意思啊

img


或者有没有替代的写法,因为我觉得我看不太懂

你把圆括号里面当成一个类就可以理解了,只不过是你新建了一个ActionListen的子类然后重写里面的方法而已,你也可以自己新建一个ActionListenerImpl的类来继承ActionListener,然后把重新的方法代码也复制过去,这样你就可以改成Strat_b.addActionListener(new ActionListenerImpl())了

这个就是java中匿名内部类的写法,你也可以在上面定义这个类然后去使用,不过很多时候还是经常用到的,建议去学习了解下这种写法

不知道你这个问题是否已经解决, 如果还没有解决的话:


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^