import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JListDemo5 {
public JListDemo5(){
String[] s = {"美國","日本","中國","英國","法國"};
JFrame jf = new JFrame();
Container contentPane = jf.getContentPane();
JList list = new JList(s);
list.setBorder(BorderFactory.createTitledBorder("你喜歡哪個國家?"));
list.setCellRenderer(new CellRenderer());
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(3);
contentPane.add(new JScrollPane(list));
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String...args){
new JListDemo5();
}
}
//class CellRenderer to design icon on every list item
class CellRenderer extends JLabel implements ListCellRenderer{
CellRenderer(){
setOpaque(true);//設置不透明,顯示反白效果
}
@Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if(value!=null){
setText(value.toString());
setIcon(new ImageIcon(".\\Icons\\home.jpg"));
}
if(isSelected){
this.setBackground(list.getSelectionBackground());
this.setForeground(list.getSelectionForeground());
}
else{
this.setBackground(list.getBackground());
this.setForeground(list.getForeground());
}
return this;
}
}
摘自:深入淺出Java Swing程序設計
分享到:
相关推荐
在绘制每个单元格之前,JList 会调用 ListCellRenderer 的 getListCellRendererComponent 方法,获取一个组件,然后将其绘制在正确的位置。 五、结论 使用 JavaSwing 中的 ListCellRenderer 接口可以轻松地自定义 ...
在Java编程中,`JList` 是Swing组件库中的一个关键部分,它用于展示一系列的选项或元素供用户选择。在默认情况下,`JList` 只能显示字符串元素,但通过自定义渲染器(CellRenderer),我们可以扩展其功能以显示更...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。在这个特定的情况下,我们探讨的是如何利用`JList`来显示图片,并实现这些图片的动态变化。这在创建图像库、画廊应用或者进行图形用户界面...
然后,我们需要为`JList`创建一个自定义的渲染器,这样每个列表项都可以显示为`JCheckBox`。我们可以创建一个`MyListCellRenderer`类,它继承自`DefaultListCellRenderer`: ```java public class ...
这段代码创建了一个包含两个条目的 `JList`,每个条目都包含一个图标和一段文本。`JList` 使用了 `IconListItemRenderer` 来渲染这些条目。 #### 3. 总结 通过以上步骤,我们成功地创建了一个带有图片的 `JList`。...
开发者可能会使用递归方式遍历文件系统,将每个目录添加为`JComboBox`的一个条目。同时,它也可能包含一个“向上一级”或“根目录”的选项,便于用户快速返回上一级或开始位置。 其次,`JList`是展示一系列项目供...
在Java编程中,`JList` 是Swing组件库中的一个关键部分,它用于展示一系列选项,用户可以选择其中的一个或多个。本篇文章将深入探讨如何使用Java构建具有各种特性的`JList`,包括添加图片、实现拖放功能以及自定义...
接着,我们需要重写`JList`的`createCellRenderer`方法,以便为每个列表项提供自定义的渲染器。渲染器将负责创建包含文本和删除按钮的组件。 ```java public class CustomJList extends JList...
swing中的jlist 代码中定义了两个jlist 从一个jlist双击列表项可以将该项从这个列表删除并添加至另外一个列表中去
首先,`JList`的基本使用包括创建`DefaultListModel`来存储列表项,然后将该模型赋值给`JList`。例如: ```java DefaultListModel<String> model = new DefaultListModel(); model.addElement("项1"); model....
在Java Swing库中,`JList`是一个非常重要的组件,用于显示一组可选择的项。在用户与`JList`进行交互时,如选择、取消选择等操作,我们可能需要捕获这些事件并做出响应。这就涉及到事件监听器的使用。本教程将详细...
`JList`的创建相当直观,只需要提供一个对象数组作为构造参数即可。例如: ```java String[] words = {"quick", "brown", "hungry", "wild"}; JList<String> wordList = new JList(words); ``` 然而,`JList`的...
例如,我们可以创建一个包含若干元素的数组,然后将其作为参数传递给`JList`的构造函数: ```java String[] items = {"选项1", "选项2", "选项3", "选项4"}; JList<String> list = new JList(items); ``` 在这个...
JList默认使用DefaultListCellRenderer,但我们可以创建一个继承自DefaultListCellRenderer的子类,并重写其`getListCellRendererComponent`方法,以此来定制每个单元格的显示。在这个方法中,你可以设置文本、图标...
下面是一个完整的示例代码,展示了如何创建一个支持多选的`JList` 组件,并如何处理选择变化事件。 ```java import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing....
在这个例子中,我们将深入探讨`JList` 的使用方法,并结合给出的`List.java`文件来解析其关键知识点。 首先,`JList` 是javax.swing包中的类,它继承自`JComponent`,并实现了`ListModel`接口。`ListModel` 是`...
JLIst的使用,主要是介绍基础
在Java Swing中,`JList` 是一个常用的组件,用于展示一系列可选择的项。当用户点击`JList`的空白区域时,默认行为是选中列表的最后一项。这对于某些应用场景,比如带有右键菜单的界面,可能会带来不便,因为用户...
JList 是 Java Swing 中的一个重要组件,用于展示列表项。它能够帮助开发者实现数据的动态展示、编辑以及选择等功能,广泛应用于各种桌面应用软件界面设计中。 #### 创建与显示 JList 在创建 JList 时,可以通过...
swing JList 拖拽记录到 JTable