java jlist 用法_Java Swing JList
时间: 2024-03-26 18:38:04 浏览: 94
JList 是 Java Swing 组件中的一个列表组件,可以用来展示一组数据。以下是 JList 的用法:
1. 创建 JList 对象:
```
JList list = new JList();
```
2. 设置数据模型:
JList 组件需要一个数据模型来存储数据,可以使用 DefaultListModel 类来创建数据模型:
```
DefaultListModel model = new DefaultListModel();
model.addElement("Item 1");
model.addElement("Item 2");
list.setModel(model);
```
3. 设置显示样式:
可以通过设置 ListCellRenderer 对象来改变每个列表项的显示样式:
```
list.setCellRenderer(new MyListRenderer());
```
4. 添加到容器中:
将 JList 添加到容器中即可显示出来:
```
JScrollPane scrollPane = new JScrollPane(list);
frame.getContentPane().add(scrollPane);
```
完整示例代码:
```
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
public class MyListRenderer implements ListCellRenderer<String> {
public static void main(String[] args) {
JFrame frame = new JFrame();
JList<String> list = new JList<String>();
DefaultListModel<String> model = new DefaultListModel<String>();
model.addElement("Item 1");
model.addElement("Item 2");
list.setModel(model);
list.setCellRenderer(new MyListRenderer());
JScrollPane scrollPane = new JScrollPane(list);
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setVisible(true);
}
public MyListRenderer() {
}
@Override
public Component getListCellRendererComponent(JList<? extends String> list, String value, int index,
boolean isSelected, boolean cellHasFocus) {
JLabel label = new JLabel();
label.setText(value);
if (isSelected) {
label.setBackground(list.getSelectionBackground());
label.setForeground(list.getSelectionForeground());
} else {
label.setBackground(list.getBackground());
label.setForeground(list.getForeground());
}
label.setOpaque(true);
return label;
}
}
```
阅读全文