最近在做GUi中的两个JList的切换问题,自己做了一个小的Demo,基本可以实现切换,之后还会更新一个应用于产品的代码,多谢关注。
package swing;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.*;
import javax.swing.event.*;
/**
* 这个类用来生成一个界面,选择报告场景的
*
* @author 汪大卫
*
*/
public class Hotpot extends JFrame {
JTextField jtf;
JList jlist1=new JList();
// JTextArea jta;
JList jta = new JList();
JButton jbt_add;
JButton jbt_remove;
private StringBuffer s = new StringBuffer();
DefaultListModel list0 = new DefaultListModel();
List<Object> list1 = new ArrayList<Object>();
DefaultListModel list = new DefaultListModel();
public Hotpot() {
JPanel jpCenter = new JPanel(new GridLayout(1, 2));
list0.addElement("麻辣红油");
list0.addElement("美味番茄");
list0.addElement("滋补菌汤");
list0.addElement("人气牛油");
list0.addElement("壮阳大骨");
list0.addElement("原味清水");
list0.addElement("泰国咖喱");
jlist1.setModel(list0);
jlist1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlist1.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
list.addElement(jlist1.getSelectedValue());
jta.setModel(list);
list0.removeElement(jlist1.getSelectedValue());
jlist1.setModel(list0);
}
}
});
jta.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
list0.addElement(jta.getSelectedValue());
list.removeElement(jta.getSelectedValue());
jta.setModel(list);
jlist1.setModel(list0);
}
}
});
JScrollPane jsp1 = new JScrollPane(jlist1);// 滚动面板
jsp1.setBorder(BorderFactory.createTitledBorder("全部锅底"));// 带标题的边框
jpCenter.add(jsp1);
// jta = new JTextArea(5, 30);
// jta.setLineWrap(true);// 自动换行
JScrollPane jsp2 = new JScrollPane(jta);
jta.setBackground(Color.white);
jsp2.setBorder(BorderFactory.createTitledBorder("已选锅底"));
jpCenter.add(jsp2);
add(jpCenter);
setTitle("火锅");
setSize(300, 200);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new Hotpot();// 启动窗口
}
}