actionlistener是什么 addeventlistener和onclick的区别
- 前端设计
- 2023-08-13
- 118
大家好,关于actionlistener是什么很多朋友都还不太明白,今天小编就来为大家分享关于addeventlistener和onclick的区别的知识,希望对各位有...
大家好,关于actionlistener是什么很多朋友都还不太明白,今天小编就来为大家分享关于addeventlistener和onclick的区别的知识,希望对各位有所帮助!
简述什么是多态
多态指为不同数据类型的实体提供统一的接口。多态类型可以将自身所支持的操作套用到其它类型的值上。
计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作。
idea判断一个数是否为素数
判断一个数是否为素数的方法如下:1.若该数小于2,则不是素数。2.若该数等于2,则是素数。3.若该数能被2整除,则不是素数。4.从3开始,依次判断该数能否被从3到sqrt(n)之间的奇数整除。4.1若能被某个数整除,则不是素数。4.2若不能被任何数整除,则是素数。
如何eclipse编写一个简单实用的登陆界面
//服务器端代码
importjava.awt.FlowLayout;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Iterator;
importjavax.swing.JFrame;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
publicclassQLServerextendsJFrame{
publicJTextAreajtextarea=null;
publicvoidlanuchFrame(Stringstr){
this.setName(str);
init();
}
privatevoidinit(){
setLayout(newFlowLayout());
jtextarea=newJTextArea(20,17);
jtextarea.setLineWrap(true);
jtextarea.setEditable(false);
this.getContentPane().add(newJScrollPane(jtextarea));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,400);
setLocationRelativeTo(null);
setResizable(false);
}
ServerSocketserver=null;
CollectioncClients=newArrayList<ClientConn>();//加个泛型
publicvoidstartServer()throwsIOException{
while(true){
Sockets=server.accept();
cClients.add(newClientConn(s));
jtextarea.append("newclientlogin"+s.getInetAddress()+":"+s.getPort()+"\n");
}
}
publicQLServer(intport,Stringstr)throwsIOException{
server=newServerSocket(port);
lanuchFrame(str);
}
classClientConnimplementsRunnable
{
Sockets=null;
publicClientConn(Sockets)
{
this.s=s;
(newThread(this)).start();
}
publicvoidsend(Stringstr)throwsIOException
{
DataOutputStreamdos=newDataOutputStream(s.getOutputStream());
dos.writeUTF(str);
}
publicvoiddispose()//客户端下线
{
try{
if(s!=null)s.close();
cClients.remove(this);
jtextarea.append("Aclientout!\n");
jtextarea.append("clientcount:"+cClients.size()+"\n\n");
}
catch(Exceptione)
{
e.printStackTrace();
}
}
publicvoidrun()
{
try{
DataInputStreamdis=newDataInputStream(s.getInputStream());
Stringstr=dis.readUTF();
while(str!=null&&str.length()!=0)
{
System.out.println(str);
for(Iteratorit=cClients.iterator();it.hasNext();)
{
ClientConncc=(ClientConn)it.next();
if(this!=cc)
{
cc.send(str+""+s.getInetAddress().getHostName());
}
}
str=dis.readUTF();//少了这句话会无限输出
//send(str);
}
this.dispose();
}
catch(Exceptione)
{
this.dispose();
}
}
}
publicstaticvoidmain(String[]args){
try{
QLServerqlserver=newQLServer(8888,"QLServer");
qlserver.startServer();
}catch(IOExceptione){
e.printStackTrace();
}
}
}importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.net.InetAddress;
importjava.net.Socket;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
//客户端代码
publicclassQLClientextendsJFrameimplementsActionListener{
publicJTextAreajtextarea1=null;
publicJTextAreajtextarea2=null;
publicJButtonbutton=null;
Sockets=null;
publicvoidlaunchFrame(Stringstr){
this.setName(str);
init();
}
publicQLClient(Stringstr)throwsIOException{
launchFrame(str);
s=newSocket("127.0.0.1",8888);//哪台电脑做服务器,IP地址改成那台机子的IP
(newThread(newServeConn())).start();
}
privatevoidinit(){
setLayout(newFlowLayout());
jtextarea1=newJTextArea(17,16);
jtextarea2=newJTextArea(4,16);
jtextarea1.setLineWrap(true);
jtextarea1.setEditable(false);
jtextarea2.setLineWrap(true);
button=newJButton("发送");
button.addActionListener(this);//绑定button事件
this.getContentPane().add(newJScrollPane(jtextarea1));
this.getContentPane().add(newJScrollPane(jtextarea2));
add(button);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,470);
setLocationRelativeTo(null);
setResizable(false);
}
publicvoidsend(Stringstr)throwsIOException{
DataOutputStreamdos=newDataOutputStream(s.getOutputStream());
dos.writeUTF(str);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==button){
StringsendStr=jtextarea2.getText();
if(sendStr.trim().length()==0){
return;
}
try{
this.send(sendStr);
jtextarea2.setText("");
InetAddressa;
a=InetAddress.getLocalHost();
Stringhostname=a.getHostName();
jtextarea1.append(sendStr+"("+hostname+")"+"\n");
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}
classServeConnimplementsRunnable{
publicvoidrun(){
if(s==null)return;
try{
DataInputStreamdis=newDataInputStream(s.getInputStream());
Stringstr=dis.readUTF();
while(str!=null&&str.length()!=0)
{
//System.out.println(str);
QLClient.this.jtextarea1.append(str+"\n");//内部类用外类中的变量或方法加外类名
str=dis.readUTF();
}
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
//main主函数入口
publicstaticvoidmain(String[]args)throwsIOException{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
QLClientqlclient=newQLClient("QLClient");
Stringstr=br.readLine();
while(str!=null&&str.length()!=0){
qlclient.send(str);
str=br.readLine();//防止死循环
}
qlclient.s.close();
}
}
java中监听事件怎么设置
一.使用内部类,一个个设置Button然后创建一个内部类,用ActionPerformed来实现按钮事件内容;
二.使用lambda表达式,但是这个方法比较繁琐,需要创建一个内部类,其实有更简单的方法,比如使用lambda表达式,而不需要创建内部类,我们可以把创建按钮和响应的部分放到一个方法里面;
三.使用匿名对象,当然使用lambda表达式肯定不是非用不可的,以前的方法是使用匿名对象,也是可以的;
四.自身框架做事件源容器,其实可以直接用JFrame本身做事件源容器,使ButtonFrame支持ActionListener接口,需要把按钮定义在属性中,然后在构造函数中添加的监听器中直接使用this像这样:greenButton.addActionListener(this);然后在自己类中实现ActionPerformed方法,使用Objectsource=e.getSource();获取到事件的更新源,然后用判断语句来判断是哪个按钮的事件依次执行事件操作;
五.使用EventHandler指定事件监听器,使用这样的方法EventHandler.create(ActionListener.class,frame,"loadData")创造一个ActionListener,这种方法用lambda表达式就等同于event->frame.localData();
关于actionlistener是什么和addeventlistener和onclick的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
本文链接:http://www.xinin56.com/qianduan/2455.html