Java聊天室系统程序设计实验报告 - 图文(7)

2019-03-09 12:56

{

public UserLoginWindow() {

initComponents(); //调用组件初始化函数 //设置窗口位置居中 int

locationX=(int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth()-getSize().getWidth())/2; int

locationY=(int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight()-getSize().getHeight())/2;

setLocation(locationX,locationY); }

private void initComponents() //组件初始化 {

fromServerMessage=new User(); toServerMessage=new User(); vectorUserList = new Vector(1,1);

ComboBoxUserName = new JComboBox(); //用户名输入框 textUserPassword = new JPasswordField(); //密码输入框 buttonEnter = new JButton(); //确定按钮 buttonExit = new JButton(); //取消按钮 buttonLogin = new JButton(); //注册按钮 Label = new JLabel();

getContentPane().setLayout(new

org.netbeans.lib.awtextra.AbsoluteLayout()); //设置面板的布局方式为绝对布局

setTitle(\登录\ setResizable(false);

addWindowListener(new WindowAdapter() //点击窗口关闭按钮事件 {

public void windowClosing(WindowEvent evt) { exitForm(evt); } }); try {

String recode;

FileInputStream fsread=new FileInputStream(\ InputStreamReader inputread=new InputStreamReader(fsread); BufferedReader bfread=new BufferedReader(inputread); while((recode=bfread.readLine()) != null) {

ComboBoxUserName.addItem(recode); } }

catch(IOException e){}

ComboBoxUserName.setForeground(new Color(0,0,0));

第 30 页 共 69 页

30

ComboBoxUserName.setBackground(new Color(255, 255, 255)); ComboBoxUserName.setEditable(true);

ComboBoxUserName.setFont(new Font(\ ComboBoxUserName.setOpaque(false);

ComboBoxUserName.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { ComboBoxUserNameActionPerformed(evt); } });

getContentPane().add(ComboBoxUserName,

org.netbeans.lib.awtextra.AbsoluteConstraints(172, 116, 152, 28));

textUserPassword.setAlignmentY(1.0F); textUserPassword.setBorder(null);

textUserPassword.setFont(new Font(\ textUserPassword.setMargin(new Insets(12, 34, 0, 0));

getContentPane().add(textUserPassword,

org.netbeans.lib.awtextra.AbsoluteConstraints(172, 162, 150, 20));

buttonExit.setForeground(new Color(255, 255, 255)); buttonExit.setFont(new Font(\幼圆\ buttonExit.setText(\退出\

buttonExit.setBackground(new Color(255, 204, 0)); buttonExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { buttonExitActionPerformed(evt); } });

getContentPane().add(buttonExit,

org.netbeans.lib.awtextra.AbsoluteConstraints(240, 210, -1, -1));

buttonEnter.setForeground(new Color(255, 255, 255)); buttonEnter.setFont(new Font(\幼圆\ buttonEnter.setText(\登录\

buttonEnter.setBackground(new Color(255, 204, 51));

buttonEnter.addActionListener(new EnterActionListener());

getContentPane().add(buttonEnter,

org.netbeans.lib.awtextra.AbsoluteConstraints(120, 210, -1, -1));

buttonLogin.setForeground(new Color(255, 255, 255)); buttonLogin.setFont(new Font(\幼圆\ buttonLogin.setText(\注册向导\

buttonLogin.setBackground(new Color(255, 204, 0)); buttonLogin.setBorder(null);

buttonLogin.setOpaque(false);

buttonLogin.addActionListener(new LoginActionListener());

第 31 页 共 69 页

31

new

new

new

new

getContentPane().add(buttonLogin, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 260, -1, -1));

Label.setIcon(new ImageIcon(\ getContentPane().add(Label, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));

try {

toServer=new Socket(ServerIPaddress,1001); streamToServer = new ObjectOutputStream(toServer.getOutputStream()); streamFromServer = new ObjectInputStream(toServer.getInputStream()); }

catch(IOException e) {}

Thread thread = new Thread(this); thread.start(); pack(); }

void Detect(int lengthName,int lengthPassword) throws IllegalLengthException

{

if(lengthName<4 || lengthPassword<4) throw new IllegalLengthException(); }

private void buttonExitActionPerformed(ActionEvent evt) //取消按钮事件 {

System.exit(0); }

private void ComboBoxUserNameActionPerformed(ActionEvent evt) //用户名下拉列表事件 { }

private void exitForm(WindowEvent evt) //退出按钮事件 {

System.exit(0); }

public void run() {

try

{ for(;;) {

第 32 页 共 69 页

32

fromServerMessage=(User)streamFromServer.readObject();

String ButtonMessage=fromServerMessage.Command; if(ButtonMessage.equals(\ {

JOptionPane.showMessageDialog(null,\恭喜!注册成功!\

frameLogin.setVisible(false);

new chatroom().show();

AddEnterUser(); }

if(ButtonMessage.equals(\ {

frameEnter.setVisible(false); new chatroom().show(); AddEnterUser(); }

if(ButtonMessage.equals(\ {

JOptionPane.showMessageDialog(null,\错误:相同的用户名已注册!\

frameLogin.setVisible(false); frameServerIP=new UserLogin();

frameServerIP.setVisible(true); }

if(ButtonMessage.equals(\ {

JOptionPane.showMessageDialog(null,\警告:非法的用户名或密码!\

frameEnter.setVisible(false); frameServerIP=new UserLogin();

frameServerIP.setVisible(true);

}

if(ButtonMessage.equals(\

{

JOptionPane.showMessageDialog(null,fromServerMessage.Message);//fy System.exit(0); }

if(ButtonMessage.equals(\|| ButtonMessage.equals(\

{ Updating(); }

if(ButtonMessage.equals(\

{ SystemMessage(); }

if(ButtonMessage.equals(\|| ButtonMessage.equals(\

第 33 页 共 69 页

33

{ Message(); }

if(ButtonMessage.equals(\|| ButtonMessage.equals(\ ButtonMessage.equals(\|| ButtonMessage.equals(\ {

FileMessage(); }

continue; } }

catch(Exception e) {

JOptionPane.showMessageDialog(null, \\JOptionPane.ERROR_MESSAGE);//测试 } }

public void AddEnterUser() {

try {

String recode;

boolean find=false; RandomAccessFile EnterObj=new RandomAccessFile(\

FileInputStream fsread=new FileInputStream(\ InputStreamReader inputread=new InputStreamReader(fsread); BufferedReader bfread=new BufferedReader(inputread); while((recode=bfread.readLine()) != null) {

while (recode.equals(fromServerMessage.UserName)) {

find=true; break; }

} if(find==false)

{

EnterObj.seek(EnterObj.length());

EnterObj.writeBytes(fromServerMessage.UserName+\ } }

catch(IOException e){} }

public void Updating() //刷新信息 {

String newUser=fromServerMessage.UserName;

第 34 页 共 69 页

34


Java聊天室系统程序设计实验报告 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全国2008年1月自学考试光纤通信原理试卷参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: