java jlist 删除_Java Swing - 如何使用DefaultListModel从JList中添加,删除项目

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;

import javax.swing.BoxLayout;

import javax.swing.DefaultListModel;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JList;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.ListSelectionModel;

public class Main {

public static void main(String[] args) {

final DefaultListModel model = new DefaultListModel<>();

final JList list = new JList<>(model);

JFrame f = new JFrame();

model.addElement("A");

model.addElement("B");

model.addElement("C");

model.addElement("D");

model.addElement("E");

JPanel panel = new JPanel();

panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));

JPanel leftPanel = new JPanel();

JPanel rightPanel = new JPanel();

leftPanel.setLayout(new BorderLayout());

rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.Y_AXIS));

list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

list.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));

list.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

if (e.getClickCount() == 2) {

int index = list.locationToIndex(e.getPoint());

Object item = model.getElementAt(index);

String text = JOptionPane.showInputDialog("Rename item", item);

String newitem = "";

if (text != null)

newitem = text.trim();

else

return;

if (!newitem.isEmpty()) {

model.remove(index);

model.add(index, newitem);

ListSelectionModel selmodel = list.getSelectionModel();

selmodel.setLeadSelectionIndex(index);

}

}

}

});

leftPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

leftPanel.add(new JScrollPane(list));

JButton removeall = new JButton("Remove All");

JButton add = new JButton("Add");

JButton rename = new JButton("Rename");

JButton delete = new JButton("Delete");

add.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String text = JOptionPane.showInputDialog("Add a new item");

String item = null;

if (text != null)

item = text.trim();

else

return;

if (!item.isEmpty())

model.addElement(item);

}

});

delete.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent event) {

ListSelectionModel selmodel = list.getSelectionModel();

int index = selmodel.getMinSelectionIndex();

if (index >= 0)

model.remove(index);

}

});

rename.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

ListSelectionModel selmodel = list.getSelectionModel();

int index = selmodel.getMinSelectionIndex();

if (index == -1)

return;

Object item = model.getElementAt(index);

String text = JOptionPane.showInputDialog("Rename item", item);

String newitem = null;

if (text != null) {

newitem = text.trim();

} else

return;

if (!newitem.isEmpty()) {

model.remove(index);

model.add(index, newitem);

}

}

});

removeall.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

model.clear();

}

});

rightPanel.add(add);

rightPanel.add(rename);

rightPanel.add(delete);

rightPanel.add(removeall);

rightPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20));

panel.add(leftPanel);

panel.add(rightPanel);

f.add(panel);

f.setSize(350, 250);

f.setLocationRelativeTo(null);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值