怎么使用获取swing的控件里面的所有得值

怎么使用获取swing的控件里面的所有得值,第1张

定义一个全局变量用来创建和循环JTextField的值,该变量为JTextField的个数,创建和获取皆可使用for来 *** 作如:

1

2

3

4

for (int i = 0; i < txtNumber; i++) {

String title = "Txt " + i;

paneadd(title, new JTextField(title));

}

话说网上真的好多啊

package client;

import javaawtColor;

import javaawtContainer;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaawteventWindowAdapter;

import javaawteventWindowEvent;

import javaioDataInputStream;

import javaioDataOutputStream;

import javaioIOException;

import javanetSocket;

import javautilDate;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJOptionPane;

import javaxswingJScrollPane;

import javaxswingJTextArea;

import javaxswingJTextField;

public class ClientFrame extends JFrame{

private JTextArea allmsg;

private JTextField welcome,copyright,chatmsg;

private JButton send;

private JScrollPane js;

private boolean isConnected = true;

public DataOutputStream out;

public DataInputStream in;

public Socket s = null;

String nic; / -- 保存用户昵称 --/

/

初始化客户端资源

1获取从LoginFrame传递过来的参数

2初始化界面元素

3初始化通信所需要的资源 EG:输入/输出流(DataInputStream/DataOutputStream)

/

public ClientFrame(String name,Socket socket)

{

thissetSize(310,660);

thissetLocation(290,50);

thissetTitle("聊天室客户端<"+name+">");/ -- 指定窗口的标题 --/

thiss = socket;/ -- 接收从LoginFrame中传递过来的Socket --/

thisnic = name+" 说: ";

welcome = new JTextField(" < "+name+" >欢迎您来到聊天室 ",100);

welcomesetBackground(Colorblue);

welcomesetEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyrightsetEnabled(false);

allmsg = new JTextArea();

allmsgsetEditable(false);

allmsgappend(" 系统消息: 欢迎登录在线聊天室 \n");

js = new JScrollPane(allmsg);//为JTextArea添加滚动条

chatmsg = new JTextField("在此输入聊天信息");

chatmsgaddActionListener(new listen());

send = new JButton("发送");

sendaddActionListener(new listen());/ -- 添加事件监听器 --/

try {

out = new DataOutputStream(sgetOutputStream());

in = new DataInputStream(sgetInputStream());

} catch (IOException e) {JOptionPaneshowMessageDialog(null, "系统异常","错误",JOptionPaneOK_CANCEL_OPTION);}

addcomponettocontainer();

/ -- 当用户关闭窗口时进行相关的处理 eg:Socket Data(Input/Output)Stream 的关闭--/

thisaddWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("quit&logout");/ -- 向服务器端发送关闭信息 --/

isConnected = false;

destory();/ -- 销毁窗口资源 --/

}

});

new Thread(new linread())start();/ -- 启动读取信息线程 --/

}

public void addcomponettocontainer()

{

Container c = thisgetContentPane();

csetLayout(null);

welcomesetBounds(75,10,150,20);

jssetBounds(10,50,280,500);

chatmsgsetBounds(10,560,180,30);

sendsetBounds(220,560,70,30);

copyrightsetBounds(10,600,280,20);

cadd(welcome);

cadd(js);

cadd(chatmsg);

cadd(send);

cadd(copyright);

thissetVisible(true);

thissetResizable(false);

}

class listen implements ActionListener

{

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(egetSource()==send||egetSource()==chatmsg)

{

String msg = chatmsggetText()trim();

if(""equals(msg))

{

JOptionPaneshowMessageDialog(null,"发送信息不能为空!","错误",JOptionPaneOK_OPTION);

}

else

{sendmsg((new Date())toLocaleString()+"\n"+nic+msg+"\n");chatmsgsetText("");}

}

}

}

/ -- 向服务器端发送信息 --/

public void sendmsg(String m)

{

if(isConnected)//如果socket的输出流没关闭

{

try {

outwriteUTF(m);

} catch (IOException e) {

JOptionPaneshowMessageDialog(null,"发送信息失败!(系统异常)","错误",JOptionPaneOK_OPTION);

}

}

else

{

JOptionPaneshowMessageDialog(null,"发送信息失败!(服务器关闭/网络故障)","错误",JOptionPaneOK_OPTION);

}

}

/ -- 读取信息线程 --/

class linread implements Runnable

{

public void run()

{

read();

}

public void read()

{

while(isConnected)

{

try {

String msg = inreadUTF();

if("SYSTEM_CLOSED"equals(msg))

{

JOptionPaneshowMessageDialog(null,"读取消息失败(服务器关闭/网络故障)!","错误",JOptionPaneOK_OPTION);

isConnected = false;

}

else

allmsgappend(msg+"\n");

} catch (IOException e) {

}

}//end while

JOptionPaneshowMessageDialog(null,"读取消息失败(服务器关闭/网络故障)!","错误",JOptionPaneOK_OPTION);

}//end read()

}

public void destory()

{

try {

thisoutclose();

thisinclose();

thissclose();

} catch (IOException e) {

}

thisdispose();

}

}

======================================================

package client;

import javaawt;

import javaxswing;

import javaawtevent;

import javaio;

import javanet;

public class LoginFrame extends JFrame{

private JTextField name;

private JTextField ip;

private JButton ok,cancle;

public Socket socket;

public LoginFrame()

{

super("登录框");

thissetSize(400,80);

thissetLocation(100,100);

name = new JTextField("昵称");

ip = new JTextField("127001");

ok = new JButton("登录");

cancle = new JButton("取消");

okaddActionListener(new listenEvent());

cancleaddActionListener(new listenEvent());

//建立容器

addcomponettocontainer();

thissetDefaultCloseOperation(EXIT_ON_CLOSE);

}

/

建立容器及控件

/

public void addcomponettocontainer()

{

Container c = thisgetContentPane();

csetLayout(null);

namesetBounds(10,10,100,30);

ipsetBounds(120,10,100,30);

oksetBounds(230,10,70,30);

canclesetBounds(310,10,70,30);

cadd(name);

cadd(ip);

cadd(ok);

cadd(cancle);

thissetVisible(true);

thissetResizable(false);

}

public class listenEvent implements ActionListener

{

public void actionPerformed(ActionEvent event) {

// TODO Auto-generated method stub

if(eventgetSource()==ok)

{

String n = namegetText()trim();

String i = ipgetText()trim();

if(""equals(n)||""equals(i))

{

JOptionPaneshowMessageDialog(null,"昵称、IP不能够为空!","错误",JOptionPaneOK_OPTION);

}

else{login(n,i);}

}

if(eventgetSource()==cancle)

{

namesetText("");

ipsetText("");

}

}

}

/

进行登录

@param name

@param ip

/

public void login(String name,String ip)

{

try {

socket = new Socket(ip,7777);

DataOutputStream out = new DataOutputStream(socketgetOutputStream());

outwriteUTF(name);

outflush();//强制输出缓存中的内容

//outclose();

new ClientFrame(name,socket);

destroywindow();

} catch (UnknownHostException e) {

JOptionPaneshowMessageDialog(null,"找不到主机地址(IP错误/网络故障)!","错误",JOptionPaneOK_OPTION);

} catch (IOException e) {

}

}

public void destroywindow()

{

thisdispose();

}

public static void main(String[] args)

{

new LoginFrame();

}

}

==================================================

package server;

import javaawtContainer;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaawteventWindowAdapter;

import javaawteventWindowEvent;

import javaioDataInputStream;

import javaioDataOutputStream;

import javaioIOException;

import javanetServerSocket;

import javanetSocket;

import javautilArrayList;

import javautilDate;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJOptionPane;

import javaxswingJScrollPane;

import javaxswingJTextArea;

import javaxswingJTextField;

public class ServerFrame extends JFrame{

/

/

private static final long serialVersionUID = 1L;

private JTextArea allmsg;

private JTextField currnum,totalnum,copyright,chatmsg;

private JButton send;

private JScrollPane js;

int num1,num2,port;/ -- num1:当前在线人数 num2:总上线人数 port:服务端口号 --/

private ServerSocket ss;

ArrayList<user> lists;//存放所有在线用户

public ServerFrame()

{

super("聊天室服务器端");

thissetSize(310,660);

thissetLocation(200,50);

lists = new ArrayList<user>();

num1 = num2 =0;

port = 7777;

currnum = new JTextField(" 当前在线人数: "+num1);

currnumsetEnabled(false);

totalnum = new JTextField(" 上线总人数: "+num2);

totalnumsetEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyrightsetEnabled(false);

allmsg = new JTextArea();

allmsgappend(" --------------- 系统消息 --------------\n");

allmsgsetEditable(false);

allmsgsetLineWrap(true); //允许自动换行

js = new JScrollPane(allmsg);//为JTextArea添加滚动条

chatmsg = new JTextField("在此输入系统信息");

chatmsgaddActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsggetText()trim();

if(!""equals(str))

{sendmsg((new Date())toLocaleString()+" -- 系统消息: "+str);chatmsgsetText("");}

else

JOptionPaneshowMessageDialog(null, "消息不能为空","错误",JOptionPaneOK_OPTION);

chatmsgsetText("");/ -- 发送信息后,将输入栏中的信息清空 -- /

}

});

send = new JButton("发送");

sendaddActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsggetText()trim();

if(!""equals(str))

{sendmsg((new Date())toLocaleString()+" -- 系统消息: "+str);chatmsgsetText("");}

else

JOptionPaneshowMessageDialog(null, "消息不能为空","错误",JOptionPaneOK_OPTION);

chatmsgsetText("");/ -- 发送信息后,将输入栏中的信息清空 -- /

}

});

//建立容器

addcomponettocontainer();

thisaddWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("SYSTEM_CLOSED");/ -- 向客户端发送服务器关闭信息 -- /

destory();

}

});

start(); / -- 启动连接服务 -- /

}

public void addcomponettocontainer()

{

//Container建立容器

Container c = thisgetContentPane();

csetLayout(null);

currnumsetBounds(20,15,130,20);

totalnumsetBounds(155,15,125,20);

jssetBounds(10,50,280,500);

chatmsgsetBounds(10,560,180,30);

sendsetBounds(220,560,70,30);

copyrightsetBounds(10,600,280,20);

cadd(currnum);

cadd(totalnum);

cadd(js);

cadd(chatmsg);

cadd(send);

cadd(copyright);

thissetVisible(true);

thissetResizable(false);

}

/

start()方法监听客户的连接

并且保存客户端的相关信息EG:用户昵称、用户所使用的Socket

用户连接到服务器成功之后,将其保存到用户列表中,并为该用户启动一个线程用于通信 /

@SuppressWarnings("deprecation")

public void start()

{

boolean isStarted = false;/ -- 用于标记服务器是否已经正常启动 -- /

try {

thisss = new ServerSocket(port);

isStarted = true;

thisallmsgappend((new Date())toLocaleString()+" 服务器启动 @ 端口: "+port+"\n");

while(isStarted)

{

Socket client = thisssaccept(); / -- 监听客户端的连接 -- /

DataInputStream in = new DataInputStream(clientgetInputStream());

String name = inreadUTF();

user u = new user();

uname = name;

usocket = client;

listsadd(u); //将该用户加到列表中去

num1++;

num2++;

currnumsetText(" 当前在线人数: "+num1);

totalnumsetText(" 上线总人数: "+num2);

thisallmsgappend((new Date())toLocaleString()+" : "+uname+" 登录 \n");

new Thread(new ClientThread(u))start();/ -- 为该用户启动一个通信线程 -- /

}

} catch (IOException e) {

Systemoutprintln("服务器已经启动");

Systemexit(0);

}

}

/

通信线程主要功能包括:

1监听客户端输入的信息

2将接收到的信息转发给其他用户 /

class ClientThread implements Runnable

{

user user = null;

boolean isConnected = true;

DataInputStream dis = null;

DataOutputStream dos = null;

public ClientThread(user u)

{

thisuser = u;

try {

thisdis = new DataInputStream(thisusersocketgetInputStream());

thisdos = new DataOutputStream(thisusersocketgetOutputStream());

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

public void run()

{

readmsg();

}

/ -- 读取客户的聊天信息 -- /

@SuppressWarnings("deprecation")

public void readmsg()

{

while(isConnected)

{

try {

String msg = disreadUTF();

if("quit&logout"equals(msg))//当用户关闭客户端窗口时,发送quit字符串 表示用户已经退出

{

num1--;

try{

thisdisclose();

thisdosclose();

thisusersocketclose();

thisisConnected = false;

}catch(IOException ioe)

{

ioeprintStackTrace();

}finally{

thisisConnected = false;

if(dis!=null) thisdisclose();

if(dos!=null) thisdosclose();

if(thisusersocket!=null) thisusersocketclose();

}

listsremove(thisuser);//从列表中删除该用户

currnumsetText(" 当前在线人数: "+num1);

allmsgappend((new Date())toLocaleString()+" : "+thisusername+" 退出\n");

}

else

sendmsg(msg);

} catch (IOException e) {

eprintStackTrace();

}

}

}

}

/ -- 将信息进行转发 -- /

public void sendmsg(String msg)

{

user us = new user();

DataOutputStream os = null;

if(listssize()>0)

{

for(int i=0;i<listssize();i++)

{

us = listsget(i);

try {

os = new DataOutputStream(ussocketgetOutputStream());

oswriteUTF(msg);

} catch (IOException e) {

eprintStackTrace();

}

}

}

else

JOptionPaneshowMessageDialog(null, "当前无用户在线。发送消息失败","失败",JOptionPaneOK_OPTION);

}

public void destory()

{

try {

thisssclose();

} catch (IOException e) {

eprintStackTrace();

}

thisdispose();

}

public static void main(String[] args)

{

new ServerFrame();

}

}

=================================================

package server;

import javanet;

public class user {

String name;

Socket socket;

}

Eclipse中第一种:步骤:

eclipsewindows设定javabuild pathclasspath变量新建

名称:JRE_SRC

file:jdk/srczip这样就ok了第二种:

1,你把鼠标放在一个jkd的类上按下F3,如果这时迁移到一个class文件拿去的话

2,class文件画面会有一个“关联源代码”按钮,点击这个按钮,然后从系统文件选择jdk下的srczip文件

这样就ok了,以后你就可以直接看到源码了。

工欲善其事,必先利其器。

JDK查看源码可首先从ArrayList、Vector、LinkedList 源码比较开始看起。

================================================================

关于myeclipse及eclipse中JDK、struts2、Spring、Hibernate源码查看

说实话,平时项目紧,很少有时间去研究源码,最近的项目暂时需求不明确,就先看看源码。

在MyEclipse中开发,习惯于点击类名,按Ctrl键查看源码

一般,我们导入的只有jar文件,所以看不到对于的java文件,如果需要看源码,必须下载对应开源包的源码,一般都是zip文件,比如Spring,下载spring-framework-208-with-dependencieszip后解压,在spring-framework-208\dist下我们会发现它的源码包spring-srczip

选中项目中的任何一个Spring的jar包,右键点击,选择properties,打开了Java Source Attribute,点击External File,选择我们刚才看到的spring-srczip,确定,OK,可以查看源码了。

至于Hibernate/Struts,一样的导入方法,如果找不到srczip文件,可以直接把下载的zip选择过去。

对于JDK,一般我们安装目录下就有源码,比如我的安装目录下:C:\Program Files\Java\jdk150_07,就可以看到srczip这个文件,这就是JDK的源码包。一样添加,OK。

我使用JDOM技术访问并修改XML文件的例子:

XML文件(e:\data\dbconfigurexml):

<xml version="10" encoding="UTF-8">

<CONFIGUREDATA>

<CONFIGURE TYPE="SQL Server 2005">

<DRIVER>commicrosoftsqlserverjdbcSQLServerDriver</DRIVER>

<URL>jdbc:sqlserver://localhost:1433;DatabaseName=DBName</URL>

<USERID>sa</USERID>

<PASSWORD>123</PASSWORD>

</CONFIGURE>

</CONFIGUREDATA>

Java程序(Testjava):

import javaioFile;

import javaioFileOutputStream;

import orgjdomDocument;

import orgjdomElement;

import orgjdominputSAXBuilder;

import orgjdomoutputFormat;

import orgjdomoutputXMLOutputter;

public class Test{

public static void main(String[] args){

try{

String filepath = "E:\\data\\dbconfigurexml";

File file = new File(filepath);

SAXBuilder builder = new SAXBuilder();

Document document = (Document) builderbuild(file);

Element root = documentgetRootElement();

Element elem1 = rootgetChild("CONFIGURE");

//修改密码

elem1getChild("PASSWORD")setText("123456");

//写回XML文件

Format format=FormatgetRawFormat();

formatsetEncoding("UTF-8");

XMLOutputter output=new XMLOutputter(format);

outputoutput(document, new FileOutputStream(filepath));

}

catch(Exception e){

eprintStackTrace();

}

}

}

需要JDOM包再找我。

以上就是关于怎么使用获取swing的控件里面的所有得值全部的内容,包括:怎么使用获取swing的控件里面的所有得值、请问能不能帮我写一个Java的聊天窗口文件源代码,不要很复杂,只要能运行,聊天就行了!我用淘宝金币换,谢、如何查看JDK源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9502031.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存