Java 更改JList中某行的字体和背景色
我在Java 更改JList中某行的字体和背景色,java,swing,jlist,joptionpane,Java,Swing,Jlist,Joptionpane,我在JOptionPane中使用JList在对话框中显示行。 我只想更改行的背景色和字体(取决于行的内容) 我无法实现,也没有找到任何有用的文章。 我的实际问题是,我下面代码中的方法getListCellRenderComponent从未被调用。对话框显示一行“一行任意文本”,但没有颜色/字体更改 有人能帮忙吗 final DefaultListModel d = new DefaultListModel(); final JList list = new JList(d);
JOptionPane
中使用JList
在对话框中显示行。
我只想更改行的背景色和字体(取决于行的内容)
我无法实现,也没有找到任何有用的文章。
我的实际问题是,我下面代码中的方法getListCellRenderComponent
从未被调用。对话框显示一行“一行任意文本”,但没有颜色/字体更改
有人能帮忙吗
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);
final DefaultListModel d=新的DefaultListModel();
最终JList列表=新JList(d);
ListCellRenderer=新建ListCellRenderer(){
@凌驾
公共组件getListCellRenderComponent(JList列表、对象值、int索引、布尔isSelected、布尔cellHasFocus){
JLabel标签=新的JLabel();
label.setText(value.toString());
label.setFont(新字体(“Courier new”,Font.ITALIC,12));
标签.立根(新颜色(12,12,12));
int i=1/0;//您有两个不同的JLists。第一个是设置ListCellRenderer的地方
list.setCellRenderer(renderer);
以及在对话框中显示的另一个:
pane.showMessageDialog(null, jlist, "adsfasdf", JOptionPane.PLAIN_MESSAGE);
加:
您有两个不同的JLists。第一个是设置ListCellRenderer的
list.setCellRenderer(renderer);
以及在对话框中显示的另一个:
pane.showMessageDialog(null, jlist, "adsfasdf", JOptionPane.PLAIN_MESSAGE);
加:
您有两个不同的JLists。第一个是设置ListCellRenderer的
list.setCellRenderer(renderer);
以及在对话框中显示的另一个:
pane.showMessageDialog(null, jlist, "adsfasdf", JOptionPane.PLAIN_MESSAGE);
加:
您有两个不同的JLists。第一个是设置ListCellRenderer的
list.setCellRenderer(renderer);
以及在对话框中显示的另一个:
pane.showMessageDialog(null, jlist, "adsfasdf", JOptionPane.PLAIN_MESSAGE);
加:
让它工作起来。哦,我的好。我太傻了!!!!是的,你是对的。非常感谢你仔细研究了它。我现在很高兴:-)哦,我的好。我太傻了!!!!是的,你是对的。非常感谢你仔细研究了它。我现在很高兴:-)哦,我的好。我太傻了!!是的,你是对的。非常感谢你的关注非常详细。我现在非常高兴:-)哦,我的好。我非常愚蠢!!!!是的,你是对的。非常感谢你如此详细地研究它。我现在非常高兴:-)