用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

好友列表 swing 代码我抄的新人赚点积分下东西

2018-03-13 作者:五只脚的鱼举报

[java]代码库

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.List;
import javax.swing.JList;
import javax.swing.border.*;
import java.util.Vector;

public class ListRenderingTest
{
	private JFrame mainWin = new JFrame("好友列表");
	private String[] friends = new String[]{
		"孙悟空","弗利萨","皮克大魔王","克林","贝吉塔"
	};
	//定义一个JList对象
	private JList friendsList = new JList(friends);
	public void init(){
		//设置该JList使用ImageCellRenderer作为列表项绘制器
		friendsList.setCellRenderer(new ImageCellRenderer());
		mainWin.add(new JScrollPane(friendsList));
		mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainWin.pack();
		mainWin.setVisible(true);
	}
	public static void main(String[] args){
		new ListRenderingTest().init();
	}
}
//
class ImageCellRenderer extends JPanel implements ListCellRenderer
{
	private ImageIcon icon ;
	private String name;
	//定义绘制单元格时背景色
	private Color background;
	//前景色
	private Color foreground;

	public Component getListCellRendererComponent(JList list,
		Object value,int index,boolean isSelected,boolean cellHasFocus){
		icon = new ImageIcon("ImageIcon2/"+value+".gif");
		name = value.toString();
		background = isSelected ? list.getSelectionBackground() : list.getBackground();
		foreground = isSelected ? list.getSelectionForeground() : list.getForeground();
		//返回该JPanel对象作为列表项绘制器
		return this;
	}
	//重写paintComponent()方法,改变JPanel的外观
	public void paintComponent(Graphics g){
		int imageWidth = icon.getImage().getWidth(null);
		int imageHeight = icon.getImage().getHeight(null);
		g.setColor(background);
		g.fillRect(0,0,getWidth(),getHeight());
		g.setColor(foreground);
		//绘制好友图标
		g.drawImage(icon.getImage(),getWidth()/2 - imageWidth/2,10,null);
		g.setFont(new Font("SansSerif",Font.BOLD,18));
		//绘制好友用户名
		g.drawString(name,getWidth()/2 - name.length()*10,imageHeight+30);
	}
	//通过该方法来设置该ImageCellRendderer的最佳大小
	public Dimension getPreferredSize(){
		return new Dimension(60,80);
	}
}

[代码运行效果截图]


好友列表 swing 代码我抄的新人赚点积分下东西

[源代码打包下载]




分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。