java实现多人聊天室+私聊+Derby数据库(没有实现注册功能)
这个聊天室困扰了我好久好久,一步一步的修改,终于不负我的努力啊,可算完成了,对于一个初学java的来说,完成第一个比较完整的项目,也是挺有成就的,但这个项目并不是特别的完善,还有待改进,希望这篇文章,可以帮助到初学者。
Login.java 登录窗体
//登陆界面的布局
package talkDemo03;
import java.awt.*;
import javax.swing.*;
public class Login {
JTextField textField=null;
JPasswordField pwdfilField=null;
ClientSR.LoginListen listen=null;
//构造函数
public Login() {
init();
}
public void init() {
JFrame jf=new JFrame("登录");
jf.setBounds(500, 250, 310, 210);
jf.setResizable(false);//设置为不能调节大小
JPanel jp1=new JPanel();
JLabel headLabel =new JLabel("登陆界面");
jp1.add(headLabel);
JPanel jp2=new JPanel();
JLabel nameJLabel=new JLabel("用户名:");
textField=new JTextField(20);
JLabel pwJLabel=new JLabel("密码:");
pwdfilField=new JPasswordField(20);
JButton loginButton=new JButton("登录");
jp2.add(nameJLabel);
jp2.add(textField);
jp2.add(pwJLabel);
jp2.add(new JLabel(" "));
jp2.add(pwdfilField);
jp2.add(loginButton);
JPanel jp=new JPanel(new BorderLayout());
jp.add(jp1,BorderLayout.NORTH);
jp.add(jp2,BorderLayout.CENTER);
listen=new ClientSR().new LoginListen();
listen.setTextField(textField);
listen.setJPasswordField(pwdfilField);
listen.setLoginJFrame(jf);
textField.addActionListener(listen);
loginButton.addActionListener(listen);
jf.add(jp);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
/*
* public static void main(String[] args) { new Login(); }
*/
}
Mainwindow.java 主窗体界面
//主窗体的布局
package talkDemo03;
import java.awt.BorderLayout;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Mainwindow{
static JTextField txt1;
JButton btnsend;
JLabel jlabel1;
JLabel jLabel2;
JLabel label1=new JLabel();
static JTextArea ja1;
static JTextArea ja2;
static JComboBox<String> cmb;
JPanel jp;
JScrollPane scroll=null;
JScrollPane scroll1=null;
String name=null;
//新建一个监听类
ClientSR.MainListen listen;
public Mainwindow(String username) {
this.name=username;
init();
}
public void init() {
JFrame jf=new JFrame("客户端");
jf.setBounds(500,200,800,400); //设置坐标和大小
jf.setResizable(false); // 缩放为不能缩放
cmb=new JComboBox<String>();//设置了下拉框
//cmb.addItem(name);
//头部
JLabel lable = new JLabel("当前用户:" + name+" ");
jlabel1=new JLabel("发送区");
JPanel p1=new JPanel();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
label1.setText("时间:" + getdate());
}
}, 0, 1000);
jLabel2=new JLabel("接收区");
p1.add(lable);
p1.add(jlabel1);
p1.add(new JLabel(" "));
p1.add(label1);
p1.add(new JLabel(" "