【问题标题】:Inserting an Image into a JList将图像插入 JList
【发布时间】:2012-09-16 13:01:06
【问题描述】:

我正在尝试将 Image 加载到 List 中,但我似乎无法让它工作。我试过了

ImageIcon pic = new ImageIcon("http://i3.ytimg.com/vi/68X8RUxeXeA/default.jpg");
JLabel picLbl = new JLabel(pic);

Object[] lol = {picLbl, "pic", "length"};
list = new JList(lol);
scrollPane.setViewportView(list);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

那就是javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=http://i3.ytimg.com/vi/68X8RUxeXeA/default.jpg,disabledIcon=,horizontalAlignment=CENTER,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]

而不是实际的图片。我环顾四周,但似乎找不到任何有效的方法。如果你们中的任何人知道如何实现这一点,任何帮助将不胜感激。

提前致谢

【问题讨论】:

    标签: java image swing list


    【解决方案1】:

    DefaultListCellRendererJLabel,因此您可以将setIcon()ImageIcon 一起使用。这个相关的example 可能是一个有用的起点。

    【讨论】:

      【解决方案2】:

      JList 无法显示 Jlabels。从您的 Image 创建一个 ImageIcon 并将其用于您的元素数组。

      如果您想了解更多关于 JList 实际如何显示元素的信息,请阅读http://docs.oracle.com/javase/tutorial/uiswing/components/list.html#renderer

      【讨论】:

      • 我已经看过了,但我似乎无法让它发挥作用。他们没有让它很容易理解。
      • 如果使用 ImageIcon 而不是 JLabel 会发生什么?
      • @JakubZaverka: DefaultListCellRenderer JLabel;更多here.
      • @thrashgod 是的,没错。但在这种情况下,JLabels 实际上是列表中的元素。虽然看起来很奇怪,但 DefaultListCellRenderer 不知道如何显示 JLabels。
      • @JakubZaverka:哦,你是对的;感谢您的澄清。默认renderer“显示对象的字符串值。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多