THE THIRTY-FIVETH DAY

    今天星期四,参加培训的第三十五天,还是和昨天一样,没有什么改变,忘记早上看的什么,好像是什么ifelse什么的,然后到教室开始看mysql没有别的什么。

    mysql的什么呢,对数据库的操作,什么创建database,drop,alert,对表的操作什么的,alter,modify,create,describe,show,还有数据库的运算符什么的,别的好像没有什么了,好像是没有什么状态,自己的程序做了一点点,没有什么进度,也还好吧,今天分个,服务器和客户端,然后弄个对话聊天就结束吧,没有什么好写的了,无从下手,我记的有人写过这个视频,所以去看下,然后模仿弥补一下自己的不足,嗯,就是这样。好的。

    我想起今天为什么没有效率了,数据库有问题,什么密码不对什么的错误,原因呢就是在用 properties文件的时候,好像是最后,加了空格什么的,导致密码错了,无所谓了,就是一上午罢了,也没有别的什么。

    还有什么好说的呢,也没有别的什么了,就随便贴个代码吧。

简陋的qq主界面代码:

package view;

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MouseInfo;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;

import dao.UserDao;
import entity.User;
import util.ImagePanelUtil;
import util.MessagePanelUtil;
import util.MyListCellRendererUtil;

public class MainView extends JFrame {
	private static int x;
	private static int y;
    private static TrayIcon trayIcon = null;   
	private static SystemTray tray = SystemTray.getSystemTray();
	private UserDao userDao = new UserDao();
	private String account;
	private List<User> userList = new ArrayList<>();
	private JList jlst;
	public MainView(String account) {
		// TODO Auto-generated constructor stub
//		setSize(350, 700);
		this.account=account;
		setBounds(1000, 30, 300, 700);
//		frame.setTitle("qq注册");
		setUndecorated(true);//不显示标题栏
		setType(JFrame.Type.UTILITY);//不在任务栏显示
		addMoveWindow();
		Container container = this.getContentPane();
		container.add(upPanel());
	    container.setLayout(new FlowLayout());
        container.add(downPanel());
	    container.add(addFriend(this));
//		container.setLayout(new GridLayout(0, 1));
		setVisible(true);
	}
	
	public JPanel upPanel() {
		User user =userDao.getUserByAccount(account);
        JPanel upPanel = new ImagePanelUtil(300,150,"./image/他的妃.jpg");
        upPanel.setLayout(new GridLayout(1, 2));
        JPanel leftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel rightPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
        JButton jbtClose = new JButton("X");
        Font font = new Font("宋体",Font.BOLD,20);
//        jbtClose.setContentAreaFilled(false); 设置透明
        jbtClose.setBorderPainted(false);
//        jbtClose.setOpaque(false);
        jbtClose.setFont(font);
        jbtClose.setBackground(Color.WHITE);
        jbtClose.setForeground(Color.black);
        JButton jbtMin = new JButton("-");
        jbtMin.setBackground(Color.WHITE);
        jbtMin.setBorderPainted(false);
        jbtMin.setFont(font);        
        ImageIcon image = new ImageIcon(user.getPhoto());      
        image.setImage(image.getImage().getScaledInstance(60, 60, Image.SCALE_DEFAULT));
        JLabel photoLabel = new JLabel(image, JLabel.CENTER);
        JPanel messagePanel = new MessagePanelUtil(user.getUsername());
        messagePanel.setOpaque(false);
        messagePanel.setPreferredSize(new Dimension(40, 40));
        rightPanel.add(jbtMin);
        rightPanel.add(jbtClose);
        rightPanel.setOpaque(false);
        leftPanel.add(photoLabel);
        leftPanel.add(messagePanel);
        leftPanel.setOpaque(false);
        upPanel.add(leftPanel);
        upPanel.add(rightPanel);
        upPanel.setPreferredSize(new Dimension(300, 150));
        jbtClose.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
	    
        jbtClose.addMouseListener(new MouseAdapter() {
        	@Override
        	public void mouseEntered(MouseEvent e) {
        		// TODO Auto-generated method stub
        		jbtClose.setBackground(Color.RED);
        	}
        	@Override
        	public void mouseExited(MouseEvent e) {
        		// TODO Auto-generated method stub
        		jbtClose.setBackground(Color.WHITE);
        		
        	}
		});
        jbtMin.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				setExtendedState(JFrame.ICONIFIED);
//				setExtendedState(JFrame.MAXIMIZED_BOTH);//最大化窗体 
			}
		});
        return upPanel;
    }
	
	public DefaultListModel listModel() {
		userList=userDao.getAllFriend(account);
		int friendNumber=userList.size();
		ImageIcon[] images = new ImageIcon[friendNumber];
		String[] names = new String[friendNumber];
		String[] accounts = new String[friendNumber];
		for(int i=0;i<friendNumber;i++) {
			images[i]=new ImageIcon(userList.get(i).getPhoto());
			images[i].setImage(images[i].getImage().getScaledInstance(50, 50, Image.SCALE_AREA_AVERAGING));
			names[i]=userList.get(i).getUsername();
			accounts[i]=userList.get(i).getAccount();
		}
		 DefaultListModel listModel = new DefaultListModel();
		   for(int i=0;i<friendNumber;i++) {	    	
			    listModel.addElement(new Object[] {images[i],names[i]+"("+accounts[i]+")"});
			    }
		   return listModel;
	}
	
	public JScrollPane downPanel() {
//		ImageIcon image = new ImageIcon("image/男.png");
//		image.setImage(image.getImage().getScaledInstance(50, 50, Image.SCALE_AREA_AVERAGING));
//		String name ="";
	   
	    jlst = new JList(listModel());
	    jlst.setBorder(BorderFactory.createLineBorder(Color.blue, 0));
	    ListCellRenderer renderer = new MyListCellRendererUtil();
	    JLabel labelImage = new JLabel("",JLabel.CENTER);
	    jlst.setCellRenderer(renderer);
//	    jlst.setPreferredSize(new Dimension(300, 700)); 
		JScrollPane jsPane = new JScrollPane(jlst);
		jsPane.setPreferredSize(new Dimension(300, 500));
		jsPane.invalidate();
		return jsPane;
	}
	
	public void shuffList() {
		jlst.setModel(listModel());
		jlst.invalidate();
		repaint();
	}
	
	public JPanel addFriend(MainView mainView) {
		JPanel jPanel = new JPanel();
		JButton jbtAddFriend = new JButton("添加好友");
		jPanel.add(jbtAddFriend);
		jbtAddFriend.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				JFrame frame =new AddFriendView(account,mainView);
			}
		});
		return jPanel;
	}
	
	public static void main(String[] args) {
		JFrame frame = new MainView("10000019");
	}
	
	
	 public void addMoveWindow() {
	    	ImageIcon trayImg = new ImageIcon("image/他的妃.jpg");// 托盘图标          
	        trayIcon = new TrayIcon(trayImg.getImage(), "test", new PopupMenu());  
	        trayIcon.setImageAutoSize(true);
	        try {
				tray.add(trayIcon);//显示托盘图标
			} catch (AWTException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
	        
	        trayIcon.addMouseListener(new MouseAdapter() {         	  
	            public void mouseClicked(MouseEvent e) {  
	  
	                if (e.getClickCount() == 1) {// 单击 1 双击 2  
	                    setVisible(true);  
	                    setExtendedState(JFrame.NORMAL);  
	                    toFront(); //此窗口可见 
	                }  
	            }    
	        }); 
	    	addMouseMotionListener(new MouseMotionAdapter() {
	    		@Override
	    		public void mouseDragged(MouseEvent e) {
	    			// TODO Auto-generated method stub
	    			setLocation((int)(MouseInfo.getPointerInfo().getLocation().getX()-x),
	    					(int)(MouseInfo.getPointerInfo().getLocation().getY()-y));
	    		}
	    		
	    		
	    		});
	    		addMouseListener(new MouseAdapter() {
	    			@Override
	    			public void mousePressed(MouseEvent e) {
	    				// TODO Auto-generated method stub
	    				x=e.getX();
	    				y=e.getY();
	    			}
	    		});
	    }
}
    嗯,也没有别的什么好说的了,要去分离代码了,就这样,有什么,那就明天再说吧。结束。

猜你喜欢

转载自blog.csdn.net/aizaiee/article/details/79920431
Day