⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nicknamedlg.java

📁 java聊天室服务器
💻 JAVA
字号:
package XXRoom;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

class NickNameDlg extends JDialog implements ActionListener
{
	JTextField nickName;
	JButton apply;
	Client  client;

	public NickNameDlg( Client client )
	{
		super( client , "请输入昵称", true );
		this.client = client;
		
		nickName = new JTextField( 10 );
		apply = new JButton( "确定" );		

		getContentPane().add( nickName, BorderLayout.CENTER );
		getContentPane().add( apply, BorderLayout.EAST );
		
		nickName.addActionListener( this );
		apply.addActionListener( this );

		setResizable( false );
		pack();
		setDefaultCloseOperation( JDialog.DO_NOTHING_ON_CLOSE );
		
	}
	
	public void showDlg()
	{
		reLocate();
		nickName.setEditable( true );
		apply.setEnabled( true );
		setVisible( true );
	}

	public void reLocate()
	{		
		//重新设定窗口位置
		int ltx = client.getLocationOnScreen().x;
		int lty = client.getLocationOnScreen().y;
	
		setLocation( ltx + client.getSize().width/2 - getSize().width/2, 
			lty + client.getSize().height/2 - getSize().height/2 );		
	}
	
	public void actionPerformed( ActionEvent e ) 
	{
		/*与服务器交互取得合法昵称*/
		try
		{
			String name = nickName.getText();
			if( name.length() == 0 )
				return;
			/*判断是否有空格*/
			for( int i = 0; i < name.length(); i ++ ) {
				if( name.charAt( i ) == ' ' ) {
					JOptionPane.showMessageDialog( this, "不允许有空格" );
					return;
				}
			}

			if( name.equals( "QUIT" ) || name.equals( "SERVER" ) || name.equals( "FILE" ) ||
				name.equals( "TALK" ) || name.equals( "INTERRUPT" ) || name.equals( "SUCCESS" ) ||
				name.equals( "HELO" ) || name.equals( "WELCOME" ) ){
					JOptionPane.showMessageDialog( this, "非法用户名" );
					return;
			}

			client.nickName = name;
			client.write.println( "HELO: " + name );
			//将昵称发出,如果成功,将对话框隐藏,否继续输入,服务器的确认消息是在主窗口的线程中接收

			nickName.setEditable( false );
			apply.setEnabled( false );
			
		}
		catch ( Exception er )
		{
			JOptionPane.showMessageDialog( client, "网络异常" );
			System.exit( 0 );
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -