| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2453 人关注过本帖
标题:JList问题
只看楼主 加入收藏
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
结帖率:0
收藏
 问题点数:0 回复次数:10 
JList问题
mode1=new DefaultListModel();
jList1=new JList(mode1);
DefaultListModel jList1Model=(DefaultListModel)jList1.getModel();

jList1Model.addElement(new ImageIcon(picsonline[0])); //picsonline
//上面的方法向jList1中添加 图象 类型元素 (1)
// jList1Model.addElement("String类型");
//上面的方法向jList1中添加String类型元素 (2)
//jList1Model.addElement(new Object[]{"String类型",new ImageIcon(picsonline[0])});
//上面的方法尝试添加图象+String类型元素 (3)
结果(1)(2)正常, (3)显示为像是对象的地址似的一些乱码....

请帮忙.. 知道的告知一下吧 感激不禁....
或者提供一个其他的方法可以向JList的一个元素添加图象+文字(String)

谢了

搜索更多相关主题的帖子: JList new ImageIcon quot String 
2006-11-14 17:32
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
它默放的显示方式是字符串格式
如果你想显示别的什么方式,比如,显示图片,显示的字体颜色等的改变
请自己去实现ListCellRenderer
然后调用此JList的setCellRenderer(ListCellRenderer cellRenderer)方法,将你实现的绘制器做为此JList的绘制器

可惜不是你,陪我到最后
2006-11-14 21:12
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 
千里 你说的方法能实现动态更改嘛
??

2006-11-14 23:30
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

加事件处理就可以


可惜不是你,陪我到最后
2006-11-14 23:41
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 
ListCellRenderer 我知道的好像用于初始化 JList可以
千里 能不能告诉我 我用你的方法 怎么实现类似JList中元素的 add() 和remove()的方法 我没有找到....

还是每次改变JList中的内容都要 setCellRender(new CellRenderer()) 来更新 ..

2006-11-15 12:20
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
JList 里面的内容,你可以写一个Model
ListModel

可惜不是你,陪我到最后
2006-11-15 12:55
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
JList的设计思想就是典型的MVC思想
Model负责保存数据,Renderer负责绘制图形
JList本身负责响应事件

可惜不是你,陪我到最后
2006-11-15 12:56
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
我写了一个带图标的JComboBox.....
希望对你有用..
import javax.swing.*;
import java.awt.*;
import javax.swing.border.LineBorder;

public class IconRenderer extends JLabel implements ListCellRenderer{
public Component getListCellRendererComponent(JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {

Object[] cell = (Object[]) value;
this.setIcon((Icon) cell[0]);
this.setText(cell[1].toString());
this.setToolTipText(cell[2].toString());
this.setBorder(new LineBorder(Color.white));
if(isSelected)
this.setForeground(Color.magenta);
else
this.setForeground(list.getForeground());

return this;
}
}



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class IconComboBoxDemo extends JFrame{
private JComboBox iconComboBox;

public IconComboBoxDemo(){
super("带图标的ComboBox");

Object[][] obj = {{new ImageIcon("1.gif"),"aaaa","aaaaa"},
{new ImageIcon("2.gif"),"cccc","bbbbb"},
{new ImageIcon("3.gif"),"adfefa","aetggf"}
};
iconComboBox = new JComboBox();
iconComboBox.setMaximumRowCount(3);
iconComboBox.setRenderer(new IconRenderer());

for(int i =0;i<obj.length;i++){
iconComboBox.addItem(obj[i]);
}

this.getContentPane().add(iconComboBox,BorderLayout.NORTH);

this.setSize(300,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args){
new IconComboBoxDemo();
}
}



我的msn: myfend@
2006-11-15 13:05
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 

好的 谢谢 一会回来试试 下午还有课
谢谢大家了


2006-11-15 13:46
ttrr550
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-11-5
收藏
得分:0 

ok搞定了

多谢 千里的提示
JList的设计思想就是典型的MVC思想
Model负责保存数据,Renderer负责绘制图形 // 就是这个方法
JList本身负责响应事件


2006-11-15 16:38
快速回复:JList问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028556 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved