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

[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);

}

}

[代码运行效果截图]

0f95781f385da3f7241bc06a90067632.png

[源代码打包下载]

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值