问题标签 [listcellrenderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
368 浏览

java - ListCellRendererComponent() 方法更新 JList 的所有对象(元素),类似于上次添加的元素

嗨,我实现了一个JList包含JLabels 作为元素的。我的目标是为服务器/客户端聊天应用程序实现联系人列表。因此,当客户端连接到服务器时,JList 将构建以显示他/她的联系人列表。我选择使用 JLabels 因为它们也可以有图标和文本。但是,我在覆盖 cellrenderer 方法时遇到了一些麻烦。每当客户端联机/脱机时,JList 都会更新其状态并将所有项目设置为类似于最后添加的项目。是这样的,

这是第一次将离线状态客户端添加到一个人的朋友列表中;

在此处输入图像描述

之后,这是第二次添加不同的客户端

在此处输入图像描述

最后第三次...

在此处输入图像描述

此外,我记得在教程中提到 JList 覆盖痛苦方法并在列表发生更改时一次又一次地绘制整个元素。好吧,实际上我是这个渲染主题的新手,这件事变得非常烦人。在这里你可以看到我的渲染器类; 渲染器示例

并在我的主类中以这种方式将元素添加到模型中

并且还createPanel()返回一个类似的 JLabel;

我希望我已经清楚我的问题。我必须实现这一点,当联系人更改他/她的状态或添加联系人时,此操作不应影响其他元素。我将非常感谢您的每一个答案(如果您可以添加简短的解释说明您所做的事情和原因,我将不胜感激。)无论如何,谢谢

0 投票
1 回答
1516 浏览

java - 如何在 DefaultListModel 中添加 JButton?

我正在制作战舰游戏,我正在尝试找出一种方法来控制窗格中的按钮,以便我可以拖放它们并使用默认列表模型跟踪它们的索引。如果我添加字符串或 ImageIcons 它工作正常但有了按钮,我得到了不同的东西。

这是我的代码:

如果我添加按钮,我会得到这个结果:

在窗格中添加按钮的结果

所以我的问题是:如何使按钮正常显示而不是默认列表模型中的文本?

0 投票
5 回答
1887 浏览

java - CellRenderer 项目重绘

我创建了自己的 CellRenderer,其中包括一些字符串和 JList 项目中的 JProgressBar ...但是 JProgressBar 和整个 JList 项目将绘制一次,我正在寻找一种重新绘制项目的方法......我试过了启动一个线程,这将永久重新绘制......但我不知道我必须重新绘制什么才能得到结果......

JList repaint ...没有结果 CellRenderer repaint ...没有结果 JFrame repaint ...没有结果

有人了解我的问题并知道出路吗?

非常感谢!

更新:[更新已删除]

下一个更新:

0 投票
2 回答
307 浏览

java - ListCellRenderer 返回 Null 指针

这是我在这里的第一篇文章,所以如果它很糟糕,请提前道歉......

我正在尝试使用自定义 ListCellRenderer 将自定义类列表中的项目添加到 JList 中。每个都有我想添加到一行的各种东西,列表中的每个都需要一个新行:




我找出列表的内容以确保它不为空,但上面突出显示的行返回一个空指针。

我对 Java 的了解仍然有限,因此非常感谢任何(简单!)帮助。

0 投票
2 回答
2911 浏览

java - 在 JList 项之间添加空格

如何在JList项目之间添加空格?有办法吗?

在此图像上,白色是背景,黄色是自定义DefaultListCellRendererJList,我希望每个JList项目彼此之间有 5 个像素的空间。

http://img819.imageshack.us/img819/5772/spacemd.png

0 投票
3 回答
17448 浏览

java - 为 JComboBox 显示一个不可选择的默认值

我有一个JComboBox包含三个 Items {"Personel", "Magasinier", "Fournisseur"}

我希望它JComboBox显示 value "Choisir une option :",这是一个不可选择的值。

我在之后尝试了这段代码initComponents();

但它不起作用。

我怎样才能做到这一点 ?

0 投票
2 回答
146 浏览

java - JList 里面有 3 个 JLabel

我正在寻找一种可能性,ListJava. 所以我想我可以使用JList并制作一个自己的CellRenderer. 问题是我想在列表的一项中显示名称、日期和评论。

这怎么能用 aJList和 a来实现CellRenderer?还是我必须使用其他东西而不是JList

0 投票
1 回答
1561 浏览

java - 换行在 JList 单元内不起作用

我正在使用 JList 来包装一些显示给用户的可变只读文本。每一行文本都呈现在一个基于JTextArea的列表单元格中,即

这个渲染器被列表使用:

JList 嵌入在 JScrollPane 中。

我这样做是因为这里的典型使用模式是使用箭头键,而不是鼠标。这允许突出显示当前单元格,使用户清楚正在发生的事情。以前的实现,使用单个 JTextArea,需要用户多次按下向下箭头,直到不可见的插入符号(不可见,因为它不可编辑)到达可能发生滚动的点(窗口底部或顶部)。

问题是,即使 InfoTextCellRenderer 打开换行和自动换行,当显示文本时,也不会发生换行。

是什么阻止了换行的发生?

0 投票
1 回答
129 浏览

java - ListCellRenderer 转换异常

这是自定义渲染器的代码:

一切正常,除非 中没有项目DefaultComboBoxModel,在这种情况下,使用valuegetListCellRendererComponent调用,这会导致错误,因为它需要一个对象。String""Facility

为什么它会这样?

更新:我知道错误是由于强制转换并且我知道如何使用instance of,问题是为什么它会以这种方式运行(函数),如果没有元素,我希望它根本不会被调用,但是为什么叫它?毕竟,如果没有元素,它会格式化什么。

更新:可以使用下面接受的答案。至于为什么会这样,是因为列表必须有一个空字符串;您知道第一次初始化组合框时默认选择的空字符串。

0 投票
1 回答
2252 浏览

java - Java遍历包含JPanel的JList - JLabel

我正在尝试遍历每个项目包含的 JList:JPanel - JLabel

目前我拥有的是:

我得到的输出是:

项目 = javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]

相反,我想访问 JPanel 内的文本。

怎么可能做到这一点?

编辑:这就是我将 JPanel 添加到 JList 的方式

所以我想找到的文字是“你好”