实现listviewbutton删除
时间: 2023-10-28 13:06:08 浏览: 27
要实现listview中的按钮删除功能,可以按照以下步骤进行:
1. 在listview中添加一个按钮用于删除选定的项。
2. 给按钮添加一个点击事件处理程序,用于删除选定的项。
3. 在点击事件处理程序中,获取选定项的索引,然后使用listview的removeItemAt方法删除该项。
以下是一个示例代码,可以根据自己的需求进行修改:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ListViewButtonDemo extends JFrame {
private JList<String> list;
private DefaultListModel<String> listModel;
public ListViewButtonDemo() {
listModel = new DefaultListModel<>();
listModel.addElement("Item 1");
listModel.addElement("Item 2");
listModel.addElement("Item 3");
listModel.addElement("Item 4");
listModel.addElement("Item 5");
list = new JList<>(listModel);
// 添加按钮到列表项
list.setCellRenderer(new ButtonCellRenderer());
JScrollPane scrollPane = new JScrollPane(list);
getContentPane().add(scrollPane, BorderLayout.CENTER);
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
private class ButtonCellRenderer extends JButton implements ListCellRenderer<Object> {
public ButtonCellRenderer() {
setOpaque(true);
}
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
setText(value.toString());
// 添加删除按钮
JButton deleteButton = new JButton("Delete");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
listModel.remove(index);
}
});
JPanel panel = new JPanel(new BorderLayout());
panel.add(deleteButton, BorderLayout.EAST);
panel.add(this, BorderLayout.CENTER);
if (isSelected) {
panel.setBackground(list.getSelectionBackground());
panel.setForeground(list.getSelectionForeground());
} else {
panel.setBackground(list.getBackground());
panel.setForeground(list.getForeground());
}
return panel;
}
}
public static void main(String[] args) {
new ListViewButtonDemo();
}
}
```
这段代码会创建一个带有删除按钮的listview,当你点击该按钮时将会删除对应的项。