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 + -
显示快捷键?