package com.office.ui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
/**
* Copyright(C),2020-2021,回梦工作室
* FileName:JlistDemo.java
* Author: yanweihe
* Date: 2021/9/21 0:04
* Description:Jlist列表框
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 描述
*/
public class JlistDemo {
private JFrame jFrame;
private JPanel p;
private JList listLeft,listRight;
private JButton btnOK,btnCancel;
DefaultListModel model1;
DefaultListModel model2;
public JlistDemo(){
jFrame = new JFrame("JList列表");
jFrame.setLayout(new GridLayout(1,3));
p = new JPanel(new GridLayout(2,1));
String[] slist = new String[]{"看书","写字","画画","爬山","跑步","游泳"};
listLeft = new JList();
//listLeft.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//设置为单选
listLeft.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//设置为多选
listLeft.setVisible(true);
listRight = new JList();
model1 = new DefaultListModel();
model2 = new DefaultListModel();
listLeft.setModel(model1);
listRight.setModel(model2);
btnOK = new JButton("——>");
btnCancel = new JButton("<——");
for(String s:slist){
model1.addElement(s);
}
btnOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
List<String> strSelect = listLeft.getSelectedValuesList();
int[] index = listLeft.getSelectedIndices();
for (int i = index.length-1;i>=0;i--){
System.out.println(index[i]);
model1.remove(index[i]);
}
for (String s:strSelect){
model2.addElement(s);
}
}
});
btnCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
List<String> strSelect = listRight.getSelectedValuesList();
int[] index = listRight.getSelectedIndices();
for (int i = index.length-1;i>=0;i--){
System.out.println(index[i]);
model2.remove(index[i]);
}
for (String s:strSelect){
model1.addElement(s);
}
}
});
p.add(btnOK);
p.add(btnCancel);
jFrame.add(listLeft);
jFrame.add(p);
jFrame.add(listRight);
jFrame.setSize(300,200);
jFrame.setLocationRelativeTo(null);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);
}
public static void main(String[] args) {
new JlistDemo();
}
}
效果图: