2015-8-18进一步修改
2015-08-18 10:15
330 查看
<pre name="code" class="java">ClientLogin
package Client; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.Border; import javax.swing.event.*; public class ClientLogin extends JFrame implements ActionListener,ChangeListener{ JProgressBar progressBar; Timer timer; JLabel usename,password,pic; JTextField jtf; JPasswordField jpf; JButton login,reset; JPanel jpanel,picpanel; ImageIcon image = new ImageIcon("images/ming.jpg"); JDialog dialog = new JDialog(ClientLogin.this,"登录验证"); JLabel label = new JLabel("正在验证,请等待",SwingConstants.CENTER); public ClientLogin() { // TODO Auto-generated constructor stub usename = new JLabel("用户名:",SwingConstants.CENTER); Font font = new Font("宋体",0, 12);//0代表正常、1代表粗体、2代表斜体、3代表粗斜体 usename.setFont(font); password = new JLabel("密码:",SwingConstants.CENTER); password.setFont(font); jtf = new JTextField("请输入用户名",20); jpf = new JPasswordField("请输入密码",20); jpanel = new JPanel(); Border border = BorderFactory.createTitledBorder("用户登录界面"); jpanel.setSize(150, 100); login = new JButton("登录"); login.addActionListener(this); reset = new JButton("重置"); reset.addActionListener(this); pic = new JLabel(image); jpanel.setLayout(new GridLayout(3,2)); jpanel.setBorder(border); jpanel.add(usename); jpanel.add(jtf); jpanel.add(password); jpanel.add(jpf); jpanel.add(login); jpanel.add(reset); setSize(300, 300); setLayout(new GridLayout(2,1)); add(pic); add(jpanel); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { int value=JOptionPane.showConfirmDialog(null, "确定要关闭吗?"); if (value==JOptionPane.OK_OPTION) { System.exit(0); } } }); setVisible(true); int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; setLocation((width-300)/2, (height-300)/2); /* * JAVA默认窗口向下是 Y轴正向 你把设置的 (height-300) 理解成 height/2 - 300/2 应该可以理解了吧 你的窗口左上角纵坐标坐标 就是你的屏幕高度一半 减去你窗口高度一半 */ //dialog label = new JLabel("正在验证,请稍后", JLabel.CENTER); progressBar = new JProgressBar(); progressBar.setOrientation(JProgressBar.HORIZONTAL); progressBar.setMinimum(0); progressBar.setMaximum(10); progressBar.setValue(0); progressBar.setStringPainted(true); progressBar.addChangeListener(this); progressBar.setPreferredSize(new Dimension(300, 20)); progressBar.setBorderPainted(true); timer = new Timer(500, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub int value = progressBar.getValue(); if(value < progressBar.getMaximum()){ progressBar.setValue(++value); } else{ timer.stop(); dialog.dispose(); progressBar.setMaximum(0); progressBar.setMaximum(10); LoginVerificationInfo lvi = new LoginVerificationInfo(jtf); lvi.VerificationInfo(); } } }); dialog.add(label,BorderLayout.NORTH); dialog.add(progressBar); dialog.setVisible(false); Dimension scr = Toolkit.getDefaultToolkit().getScreenSize(); dialog.setLocation(scr.width/2,scr.height/2); dialog.setSize(100, 100); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JButton jbutton = (JButton)e.getSource(); if(jbutton == login){ dialog.setVisible(true); timer.start(); System.out.println("用户点击登录 :\r\n 用户输入的用户名是"+jtf.getText()+"\r\n 用户输入的密码是"+jpf.getText()); } if(jbutton == reset){ jtf.setText(""); jpf.setText(""); } } public static void main(String[] args) { new ClientLogin(); } class LoginVerificationInfo{ JTextField jtf; public LoginVerificationInfo(JTextField fjtf) { // TODO Auto-generated constructor stub jtf = fjtf; } public void VerificationInfo(){ if(jtf.getText().equals("admin") && jpf.getText().equals("1234")){ System.out.println("登录成功,进入聊天页面"); ClientLogin.this.setVisible(false); ChatTreeList ctl = new ChatTreeList(); ctl.setVisible(true); } else if(jtf.getText().equals("")&&!jpf.getText().equals("")){ System.out.println("登录失败,用户名为空"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,用户名为空,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); } else if(!jtf.getText().equals("")&&jpf.getText().equals("")){ System.out.println("登录失败,密码为空"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,密码为空,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); }else if(jtf.getText().equals("") && jpf.getText().equals("")){ System.out.println("登录失败,用户名和密码为空"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,用户名和密码为空,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); }else if(jtf.getText().equals("admin") && !jpf.getText().equals("1234")){ System.out.println("登录失败,密码输入有误"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,密码输入有误,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); }else if(!jtf.getText().equals("admin") &&jpf.getText().equals("1234")){ System.out.println("登录失败,用户名输入有误"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,用户名输入有误,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); }else{ System.out.println("登录失败,用户名和密码输入有误"); JOptionPane jop = new JOptionPane(); jop.showMessageDialog(ClientLogin.this,"登录失败,用户名和密码输入有误,请重新输入","提示框",JOptionPane.ERROR_MESSAGE); } } } @Override public void stateChanged(ChangeEvent e) { // TODO Auto-generated method stub } }
</pre><pre name="code" class="java"><pre name="code" class="java">
package Client;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import javax.swing.tree.*;
public class ChatTreeList extends JFrame implements MouseListener{
JTree tree;
JPanel myjpanel,menujpanel,jpanel;
ImageIcon myicon = new ImageIcon("images/狗.jpg");
ImageIcon menuicon1 = new ImageIcon("images/add.gif");
ImageIcon menuicon2 = new ImageIcon("images/delete.gif");
JLabel label,addlabel,namelabel,signaturelabel,deletelabel;
public ChatTreeList(){
super("聊天人员列表");
final DefaultMutableTreeNode root = new DefaultMutableTreeNode("好友列表");
tree = new JTree(root);
tree.putClientProperty("JTree.lineStyle" , "None");
tree.addMouseListener(this);
//设置是否显示根节点的“展开/折叠”图标,默认是false
tree.setShowsRootHandles(true);
//设置节点是否可见,默认是true
tree.setRootVisible(true);
label = new JLabel(myicon);
addlabel = new JLabel(menuicon1);
addlabel.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
final JDialog dialog = new JDialog();
JLabel label,grouplabel;
final JTextField jtf;
final JTextField groupjtf;
JButton jb1 = new JButton("确定");
JButton jb2 = new JButton("取消");
JPanel jpanel = new JPanel();
jpanel.add(jb1);
jpanel.add(jb2);
int value=JOptionPane.showConfirmDialog(null, "是否要添加分组");
if (value==JOptionPane.OK_OPTION) {
label = new JLabel("请输入要添加的分组");
groupjtf = new JTextField("",10);
dialog.add(label,BorderLayout.NORTH);
dialog.add(groupjtf,BorderLayout.CENTER);
dialog.add(jpanel,BorderLayout.SOUTH);
dialog.setSize(200, 200);
dialog.setVisible(true);
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String groupname = groupjtf.getText();
DefaultMutableTreeNode group = new DefaultMutableTreeNode(groupname);
root.add(group);
dialog.setVisible(false);
}
});
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dialog.dispose();
}
});
}else if( value==JOptionPane.CANCEL_OPTION){
label = new JLabel("请输入要添加的好友");
jtf = new JTextField("",10);
//
grouplabel = new JLabel("请输入要把好友添加到哪里");
//
groupjtf = new JTextField("",10);
//
dialog.add(label,BorderLayout.NORTH);
dialog.add(jtf,BorderLayout.CENTER);
dialog.add(jpanel,BorderLayout.SOUTH);
dialog.setSize(200, 200);
dialog.setVisible(true);
jb1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String name = jtf.getText();
DefaultMutableTreeNode group = new DefaultMutableTreeNode(name);
root.add(group);
dialog.setVisible(false);
tree.updateUI();
}
});
jb2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
dialog.dispose();
}
});
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
deletelabel = new JLabel(menuicon2);
deletelabel.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode selectedNode
= (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (selectedNode != null && selectedNode.getParent() != null)
{
//删除指定节点
model.removeNodeFromParent(selectedNode);
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
});
namelabel = new JLabel("祚");
signaturelabel = new JLabel("我为自己代言");
jpanel= new JPanel();
jpanel.setLayout(new GridLayout(2,1));
jpanel.add(namelabel);
jpanel.add(signaturelabel);
myjpanel = new JPanel();
myjpanel.setLayout(new GridLayout(1,2));
myjpanel.add(label);
myjpanel.add(jpanel);
myjpanel.setSize(100, 100);
menujpanel = new JPanel();
menujpanel.setLayout(new GridLayout(1,2));
menujpanel.add(addlabel);
menujpanel.add(deletelabel);
add(myjpanel,BorderLayout.NORTH);
add(new JScrollPane(tree),BorderLayout.CENTER);
add(menujpanel,BorderLayout.SOUTH);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new ChatTreeList();
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
DefaultMutableTreeNode selectedNode
= (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (selectedNode != null && selectedNode.getParent() != null)
{
String name = namelabel.getText();
ClientTalk ct = new ClientTalk(selectedNode.toString(), name);
ct.setVisible(true);
}
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
package Client;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ClientTalk extends JFrame implements ActionListener{
JTextArea jta;
JScrollPane js;
JTextField jtf;
JButton send;
JPanel jp1,jp2;
// String[] chatlist = {"所有人","自己","范","李","张"};
JComboBox jcb;
String my;
public ClientTalk(String name,String myname){
super(name);
this.my = myname;
jta = new JTextArea("",10,30);
js = new JScrollPane(jta);
jp1 = new JPanel();
jp1.add(js);
jp1.setSize(150, 150);
// jcb = new JComboBox(chatlist);
// jcb.setSelectedIndex(0);
jtf = new JTextField(10);
send = new JButton("发送");
send.setActionCommand("send");
send.addActionListener(this);
jp2 = new JPanel();
// jp2.add(jcb);
jp2.add(jtf);
jp2.add(send);
add(jp1,BorderLayout.NORTH);
add(jp2,BorderLayout.SOUTH);
setSize(300, 270);
setVisible(false);
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
setLocation((width-300)/2, (height-300)/2);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand() == "send"){
// String info = (String) jcb.getSelectedItem();
String info = ClientTalk.this.my;
jta.append(info+":"+jtf.getText()+ "\r\n");
}
}
}
相关文章推荐
- 根据用户在tableview中点击(触摸)cell的自定义accessoryButton获得其indexpath
- 大白话系列之C#委托与事件讲解(序言)
- AHB-Lite简介
- 当当网
- 屏蔽所有统计代码(51.la cnzz 百度统计 谷歌分析师adsense、屏蔽淘宝客广告代码)的方法
- JackSon 数据之间的转换 java
- MYSQL-目录文件分配查询
- Gradle Android最新自动化编译脚本
- Oracle 分区操作
- GitHub和SourceTree入门教程
- 如何在shell中处理异常
- window server2008 R2 mvc 项目服务器环境的搭建。
- redis.conf配置详解
- Ubuntu14.04下安装OpenCV 3.0.RC1
- 苹果开发 笔记(62)edgesForExtendedLayout
- SQL_修改表结构
- Ugly Numbers(STL应用)
- iOS开发-UICollectionView
- Linux下查看目录大小
- 8月15日全球域名注册商(国际域名)保有量及市场份额