gpt4 book ai didi

java - 更改 JList 中一行的字体和背景颜色

转载 作者:行者123 更新时间:2023-12-01 22:30:39 25 4
gpt4 key购买 nike

我在 JOptionPane 中使用 JList 来在对话框中显示行。我只是想更改线条的背景颜色和字体(取决于线条的内容)。

我无法实现,也没有找到任何关于此的有用文章。我的实际问题是,我的以下代码中的方法 getListCellRendererComponent 从未被调用。对话框显示一行“任何文本一行”,但颜色/字体没有变化。

有人可以帮忙吗?

    final DefaultListModel d = new DefaultListModel();
final JList list = new JList(d);

ListCellRenderer renderer = new ListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = new JLabel();
label.setText(value.toString());

label.setFont(new Font("Courier New", Font.ITALIC, 12));
label.setBackground(new Color(12, 12, 12));

int i = 1 / 0; // <<<<<< --- does not throw an error, so it doesn't get into this.
return label;
}
};
list.setCellRenderer(renderer);

for (int iList = 0; iList < alSuggestionsText.size(); iList++) {
// bigList[iList] = alTexte.get(iList);
d.addElement(alSuggestionsText.get(iList));
// jlist.add(bigList);
}

final String sIgronreText = "any text for one line";

d.addElement(sIgronreText);

final JList jlist = new JList(d);

JOptionPane jpane = new JOptionPane();
jpane.showMessageDialog(null, jlist, sWikiidtemp, JOptionPane.PLAIN_MESSAGE);

最佳答案

您有两个不同的 JList。第一个设置 ListCellRenderrer 的位置。

list.setCellRenderer(renderer);

以及您在对话框中显示的另一个:

pane.showMessageDialog(null, jlist, "adsfasdf", JOptionPane.PLAIN_MESSAGE);

添加:

    final JList jlist = new JList(d);
jlist.setCellRenderer(renderer);

使其正常工作。

关于java - 更改 JList 中一行的字体和背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27816251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com