📄 nicknamedlg.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 + -