entrance.java
来自「java chat 程序」· Java 代码 · 共 139 行
JAVA
139 行
package client.display;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
import client.Client;
import client.ClientImp;
import common.UserInfo;
/**
* 客户端程序入口
* 登陆界面
* @author 彭文杰
* 日期:Oct 19, 2006
*/
public class Entrance extends JFrame {
private static final long serialVersionUID = 1L;
Client client;
JPanel mainPanel;
JLabel jl_user;
JTextField jtf_user;
JButton jb_logon,jb_cancel;
GridBagLayout mainLayout;
Icon i;
public Entrance(){
super("登陆");
mainPanel=new JPanel();
mainLayout=new GridBagLayout();
mainPanel.setLayout(mainLayout);
setContentPane(mainPanel);
this.mainPanel.setLayout(mainLayout);
setDefaultCloseOperation(EXIT_ON_CLOSE);
jl_user=new JLabel("用户名");
jtf_user=new JTextField(new FixedLengthDocument(10),"",10);
jb_logon=new JButton("登陆");
//border="0"; src="/pic/news/java12.gif"; width="37"; height="24";
jb_logon.setMnemonic('d');
jb_logon.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
String userid=jtf_user.getText();
if(userid==null){
JOptionPane.showMessageDialog(null,"请输入用户名!");
return;
}else if(userid.trim().length()==0){
JOptionPane.showMessageDialog(null,"请输入用户名!");
return;
}
UserInfo user=new UserInfo();
user.setUserId(userid);
//此处创建一个客户端对象
client=new ClientImp(user);
//当前窗口关闭
dispose();
//调用登陆方法
client.logon(user);
}
});
jb_cancel=new JButton("取消");
jb_cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
dispose();
System.exit(0);
}
});
setPosition(1,1,1,1,jl_user);
setPosition(2,1,2,1,jtf_user);
setPosition(2,2,1,1,jb_logon);
setPosition(3,2,1,1,jb_cancel);
setSize(300,160);
setVisible(true);
setLocation(400,300);
}
/**
* 封装了一下 设置GridBagConstraints的方法
* 为了简便使用
* @author 彭文杰
* 日期:Oct 21, 2006
* @param gridx
* @param gridy
* @param gridwidth
* @param gridheight
* @param comp
*/
public void setPosition(int gridx,int gridy,int gridwidth,int gridheight,Component comp){
int anchor=GridBagConstraints.CENTER;
int fill=GridBagConstraints.HORIZONTAL;
Insets inset=new Insets(1,2,1,2);
GridBagConstraints gbc=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,0,0,anchor,fill,inset,0,0);
this.mainLayout.setConstraints(comp,gbc);
this.mainPanel.add(comp);
}
/**
* 限定JLable的最大长度
* @author 彭文杰
* 日期:Oct 21, 2006
*/
class FixedLengthDocument extends PlainDocument{
private static final long serialVersionUID = -1340713402172136166L;
private int maxLength;
public FixedLengthDocument(int maxLength){
this.maxLength=maxLength;
}
public void insertString(int offset,String str,AttributeSet att) throws BadLocationException {
if(this.getLength()+str.length()>maxLength){
//超出长度就忽略掉
Toolkit.getDefaultToolkit().beep();
}else{
super.insertString(offset,str,att);
}
}
}
/**
* @author 彭文杰
* 日期:Oct 17, 2006
* @param args
*/
public static void main(String[] args) {
new Entrance();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?