package com.qq.client.tools;
import java.awt.*;
import java.awt.event.*;
import java.awt.font.TextLayout;
import javax.swing.*;
import com.qq.client.view.*;
/**
-
Title:
* -
Description:
* -
Copyright: Copyright (c) 2007
* -
Company:
* - @author not attributable
-
@version 1.0
/
public class face extends JWindow {
private static final long serialVersionUID = 1L;
GridLayout gridLayout1 = new GridLayout(6,3);
JLabel[] ico=new JLabel[18];
JLabel[] icc=new JLabel[18];/放表情*/
int i;
QqChat owner;
String[] intro = {"","","","","","","","","",
"","","","","","","","",""
};/*图片描述*/
public face (QqChat owner) {
super(owner);
this.owner=owner;
try {
init();
this.setAlwaysOnTop(true);
}
catch (Exception exception) {
exception.printStackTrace();
}
}
private void init() throws Exception {
this.setPreferredSize(new Dimension(38*6,50*3));
JPanel p = new JPanel();
p.setOpaque(true);
this.setContentPane(p);
p.setLayout(gridLayout1);
p.setBackground(SystemColor.text);
String fileName = "";
for(i=0;i <ico.length;i++){
fileName= "emjio/"+ i +".png";/*修改图片路径*/
ico[i]=new JLabel(new ImageIcon(fileName));
//icc[i] =new JLabel(new ChatPic(face.class.getResource(fileName),i),SwingConstants.CENTER);
ico[i].setBorder(BorderFactory.createLineBorder(new Color(225,225,225), 1));
ico[i].setToolTipText(i+"");
ico[i].addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getButton()==1){
JLabel cubl = (JLabel)(e.getSource());
ChatPic cupic = (ChatPic) (cubl.getIcon());
owner.insertSendPic(cupic);
cubl.setBorder(BorderFactory.createLineBorder(new Color(225,225,225), 1));getObj().dispose(); } } @Override public void mouseEntered(MouseEvent e) { ((JLabel)e.getSource()).setBorder(BorderFactory.createLineBorder(Color.BLUE)); } @Override public void mouseExited(MouseEvent e) { ((JLabel)e.getSource()).setBorder(BorderFactory.createLineBorder(new Color(225,225,225), 1)); } }); p.add(ico[i]); } p.addMouseListener(new MouseAdapter(){ @Override public void mouseExited(MouseEvent e) { getObj().dispose(); } });
}
@Override
public void setVisible(boolean show) {
if (show) {
determineAndSetLocation();
}
super.setVisible(show);
}private void determineAndSetLocation() {
Point loc = owner.getPicBtn().getLocationOnScreen();/*控件相对于屏幕的位置*/
setBounds(loc.x-getPreferredSize().width/3, loc.y-getPreferredSize().height,
getPreferredSize().width, getPreferredSize().height);
}
private JWindow getObj(){
return this;
}public static void main(String[] args){
}
}
package com.qq.client.tools;
import java.net.URL;
import javax.swing.ImageIcon;
public class ChatPic extends ImageIcon{
/**
*图片描述
*/
private static final long serialVersionUID = 1L;
int im;//图片代号
public int getIm() {
return im;
}
public void setIm(int im) {
this.im = im;
}
public ChatPic(URL url,int im){
super(url);
this.im = im;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
}
点击表情后提示错误
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.ImageIcon cannot be cast to com.qq.client.tools.ChatPic
at com.qq.client.tools.face$1.mouseClicked(face.java:60)
ChatPic cupic = (ChatPic) (cubl.getIcon());
错误的是这一行