实现在两个JList中元素移动and实现数据更改后排序
2009-07-29 14:34
796 查看
/* * example for jlist that sorted and can move to other * @dingoc * */ import java.awt.Color; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.SwingConstants; public class OILSYSList extends JPanel { /** * @dingoc * 09/07/27 */ private static final long serialVersionUID = 1L; private JButton but[]; private JPanel jPanel = null; // @jve:decl-index=0:visual-constraint="51,44" private JLabel jLabel1 = null; private JLabel jLabel2 = null; private JList jList = null; private JList jList2 = null; private JLabel jLabel3 = null; private JLabel jLabel4 = null; public JScrollPane scrollPane = null; public JScrollPane scrollPane2 = null; List list = null; List list2 = null; private String[] str = { "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii", "jj", "kk", "ll" }; private String[] str2 = { "11", "22", "33", "44", "55", "66", "77", "88", "99", "00", "12", "13" }; DefaultListModel model1, model2; /** * This method initializes jPanel * * @return javax.swing.JPanel */ public OILSYSList() { list = GetList(); list2 = GetList(); Collections.sort(list); Collections.sort(list2); this.setLayout(null); //this.setBounds(new Rectangle(100,100,500,300)); jLabel4 = new JLabel(); jLabel4.setBounds(new Rectangle(328, 84, 126, 18)); jLabel4.setText("products selected"); jLabel3 = new JLabel(); jLabel3.setBounds(new Rectangle(66, 84, 126, 18)); jLabel3.setText("all products"); jLabel2 = new JLabel(); jLabel2.setBounds(new Rectangle(40, 44, 128, 18)); jLabel2.setHorizontalAlignment(SwingConstants.CENTER); jLabel2.setHorizontalTextPosition(SwingConstants.CENTER); jLabel2.setText("content"); jLabel1 = new JLabel(); jLabel1.setBounds(new Rectangle(148, 13, 217, 18)); jLabel1.setHorizontalAlignment(SwingConstants.CENTER); jLabel1.setHorizontalTextPosition(SwingConstants.CENTER); jLabel1.setText("title"); jPanel = new JPanel(); jPanel.setLayout(null); jPanel.setSize(new Dimension(519, 305)); // jPanel.setBackground(Color.white); jPanel.add(jLabel1, null); jPanel.add(jLabel2, null); jPanel.add(jLabel3, null); jPanel.add(jLabel4, null); model1 = new DefaultListModel(); jList = new JList(model1); jList.setBounds(new Rectangle(0, 0, 126, 152)); for (int i = 0; i < list.size(); i++) { Object s = list.get(i); model1.addElement(s); } scrollPane = new JScrollPane(jList); scrollPane.setBackground(Color.LIGHT_GRAY); scrollPane.setBounds(new Rectangle(66, 101, 126, 152)); model2 = new DefaultListModel(); jList2 = new JList(model2); jList2.setBounds(new Rectangle(0, 0, 126, 152)); for (int i = 0; i < list2.size(); i++) { Object s = list2.get(i); model2.addElement(s); } scrollPane2 = new JScrollPane(jList2); scrollPane2.setBackground(Color.LIGHT_GRAY); scrollPane2.setBounds(new Rectangle(335, 101, 126, 152)); jPanel.add(scrollPane, null); jPanel.add(scrollPane2, null); but = new JButton[2]; but[0] = new JButton(); but[0].setBounds(new Rectangle(225, 132, 72, 24)); but[0].setHorizontalTextPosition(SwingConstants.CENTER); but[0].setText(">"); but[1] = new JButton(); but[1].setBounds(new Rectangle(227, 197, 72, 24)); but[1].setHorizontalTextPosition(SwingConstants.CENTER); but[1].setText("<"); for (int i = 0; i < but.length; i++) { but[i].addActionListener(new Handler()); } jPanel.add(but[0], null); jPanel.add(but[1], null); this.add(jPanel); } public List GetList() { List list = new ArrayList(); list.clear(); list.add("aa"); list.add("bb"); list.add("vv"); list.add("ss"); list.add("dd"); list.add("xx"); list.add("cc"); list.add("zz"); list.add("ee"); list.add("ww"); list.add("qq"); list.add("tt"); list.add("yy"); list.add("uu"); return list; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JFrame f = new JFrame(); f.setSize(new Dimension(1024, 660)); OILSYSList p = new OILSYSList(); p.setBounds(new Rectangle(500,100,500,300)); f.add(p, null); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } class Handler implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource() == but[0]) { while (!jList.isSelectionEmpty()) { list2.add(jList.getSelectedValue()); list.remove(jList.getSelectedValue()); Collections.sort(list); Collections.sort(list2); model2.removeAllElements(); model1.removeAllElements(); for (int i = 0; i < list2.size(); i++) { model2.addElement(list2.get(i)); } for (int i = 0; i < list.size(); i++) { model1.addElement(list.get(i)); } } } if (e.getSource() == but[1]) { while (!jList2.isSelectionEmpty()) { list.add(jList2.getSelectedValue()); list2.remove(jList2.getSelectedValue()); Collections.sort(list); Collections.sort(list2); model2.removeAllElements(); model1.removeAllElements(); for (int i = 0; i < list2.size(); i++) { model2.addElement(list2.get(i)); } for (int i = 0; i < list.size(); i++) { model1.addElement(list.get(i)); } } } } } }
相关文章推荐
- java编程实现对10个整型数据元素输出最小的两个数,java自带的Arrays.sort排序方法,小--->大
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- 使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- JS实现两个datagrid的数据移动
- 使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组
- C/C++,数据结构实现两个链表的合并(尾插法建立单链表,求链表长度,直接插入排序)
- QT 利用两种方式实现两个list中元素的互相移动
- HTML5 元素拖动 - 实现元素左右拖动, 或更改自身排序
- 用JavaScript实现两个列表框的数据移动
- 设计函数,实现删除向量中重复元素的功能。要求:尽可能避免数据的大量移动
- 经典排序算法----选择排序算法及交换两个数据的正确实现
- 在两个元素间实现"无缝"移动
- 用js实现两个select下拉框之间的元素互相移动
- 编写一个排序函数,实现数字排序。排序方法由客户函数实现,函数参数个数为两个,两个参数的关系作为排序后的元素间的关系。
- 白话经典算法系列之四 直接选择排序及交换两个数据的正确实现
- 转载---使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动
- C#开发学习笔记:C#中实现两个GridControl之间的数据拖拽以及同一个GridControl中的数据行上下移动
- C/C++,数据结构实现两个链表的合并(尾插法建立单链表,求链表长度,直接插入排序)