• Java——列表框:JList


    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.util.Vector;
    
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JRadioButton;
    import javax.swing.ListSelectionModel;
    
    //=================================================
    // File Name       :	JList_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    //类名:MyList
    //属性:
    //方法:
    class MyList{
    	private JFrame frame = new JFrame("窗体");					//定义窗体
    	private Container cont = frame.getContentPane();			//得到窗体容器
    	private JList list1  = null;															//定义列表框
    	private JList list2  = null;															//定义列表框
    	public MyList(){
    		this.frame.setLayout(new GridLayout(1,3));					//定义排版,1行2列
    		String nations[] = {"中国","美国","韩国","法国","英国"};
    		Vector<String> v = new Vector<String>();						//定义一个Vector集合
    		v.add("Vector1");
    		v.add("Vector2");
    		v.add("Vector3");
    		this.list1 = new JList(nations);					//实例化JList
    		this.list2 = new JList(v);								//实例化JList
    		//定义一个列表框的边框显示条
    		list1.setBorder(BorderFactory.createTitledBorder("哪个国家?"));
    		list2.setBorder(BorderFactory.createTitledBorder("Vector?"));
    		//第一个列表框一次可以选择多个选项
    		list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    		//第二个列表框每次可以选择一个选项
    		list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		cont.add(this.list1);					//加入面板
    		cont.add(this.list2);					//加入面板
    		this.frame.setSize(330,200);
    		this.frame.setVisible(true);
    		this.frame.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e) {			//窗口关闭时触发,按下关闭按钮
    			// TODO 自动生成的方法存根
    			System.out.println("windowClosing-->窗口关闭");
    			System.exit(1);
    			}
    		});
    	}
    }
    
    
    //主类
    //Function        : 	JList_demo
    public class JList_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		new MyList();
    	}
    
    }
    

    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.util.Vector;
    
    import javax.swing.AbstractListModel;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.ListSelectionModel;
    
    //=================================================
    // File Name       :	JModel_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    //类名:MyListModel
    //属性:
    //方法:
    class MyListModel extends AbstractListModel{
    
    	private String nations[] = {"中国","美国","韩国","法国","英国"};
    	
    	@Override
    	public int getSize() {							
    		// TODO 自动生成的方法存根
    		return this.nations.length;
    	}
    
    	@Override
    	public Object getElementAt(int index) {		//返回指定标号的元素
    		// TODO 自动生成的方法存根
    		if(index<this.nations.length){
    			return this.nations[index];
    		}else{
    			return null;
    		}
    	}
    }
    
    //类名:MyList
    //属性:
    //方法:
    class myList{
    	private JFrame frame = new JFrame("窗体");					//定义窗体
    	private Container cont = frame.getContentPane();			//得到窗体容器
    	private JList list1  = null;															//定义列表框
    	private JList list2  = null;															//定义列表框
    	public myList(){
    		this.list1 = new JList(new MyListModel());
    		this.list2 = new JList(new MyListModel());
    		//定义一个列表框的边框显示条
    		list1.setBorder(BorderFactory.createTitledBorder("哪个国家?"));
    		list2.setBorder(BorderFactory.createTitledBorder("Vector?"));
    		//第一个列表框一次可以选择多个选项
    		list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    		//第二个列表框每次可以选择一个选项
    		list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		cont.add(this.list1);					//加入面板
    		cont.add(this.list2);					//加入面板
    		this.frame.setSize(330,200);
    		this.frame.setVisible(true);
    		this.frame.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent e) {			//窗口关闭时触发,按下关闭按钮
    			// TODO 自动生成的方法存根
    			System.out.println("windowClosing-->窗口关闭");
    			System.exit(1);
    			}
    		});
    	}
    }
    
    //主类
    //Function        : 	JModel_demo
    public class JModel_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		new MyList();
    	}
    
    }
    

    监听只能加一个

    import java.awt.Container;
    import java.awt.GridLayout;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.util.Vector;
    
    import javax.swing.AbstractListModel;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.ListSelectionModel;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    
    //=================================================
    // File Name       :	JModel_demo
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    //类名:MyListModel
    //属性:
    //方法:
    class MyListModel extends AbstractListModel{
    
    	private String nations[] = {"中国","美国","韩国","法国","英国"};
    	
    	@Override
    	public int getSize() {							
    		// TODO 自动生成的方法存根
    		return this.nations.length;
    	}
    
    	@Override
    	public Object getElementAt(int index) {		//返回指定标号的元素
    		// TODO 自动生成的方法存根
    		if(index<this.nations.length){
    			return this.nations[index];
    		}else{
    			return null;
    		}
    	}
    }
    
    //类名:MyList
    //属性:
    //方法:
    class myList implements ListSelectionListener{
    	private JFrame frame = new JFrame("窗体");					//定义窗体
    	private Container cont = frame.getContentPane();			//得到窗体容器
    	private JList list1  = null;															//定义列表框
    //	private JList list2  = null;															//定义列表框
    	public myList(){
    		this.list1 = new JList(new MyListModel());
    //		this.list2 = new JList(new MyListModel());
    		//定义一个列表框的边框显示条
    		list1.setBorder(BorderFactory.createTitledBorder("哪个国家?"));
    //		list2.setBorder(BorderFactory.createTitledBorder("Vector?"));
    		//第一个列表框一次可以选择多个选项
    		list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    		//第二个列表框每次可以选择一个选项
    //		list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    		
    		list1.addListSelectionListener(this); 			//加入事件监听
    //		list2.addListSelectionListener(this); 			//加入事件监听
    		cont.add(new JScrollPane(this.list1));			//加入滚动条
    		
    		cont.add(this.list1);					//加入面板
    //		cont.add(this.list2);					//加入面板
    		this.frame.setSize(330,200);
    		this.frame.setVisible(true);
    		this.frame.addWindowListener(new WindowAdapter(){	//加入事件监听
    			public void windowClosing(WindowEvent arg0) {			//窗口关闭时触发,按下关闭按钮
    			// TODO 自动生成的方法存根
    			System.out.println("windowClosing-->窗口关闭");
    			System.exit(1);
    			}
    		});
    	}
    	
    	public void valueChanged(ListSelectionEvent e) {
    		// TODO 自动生成的方法存根
    		int temp[] = list1.getSelectedIndices();				//取得全部选定
    		System.out.println("选定的内容:");
    		for(int i=0;i<temp.length;i++){
    			System.out.println(list1.getModel().getElementAt(i)+"、");
    		}
    	}
    }
    
    //主类
    //Function        : 	JModel_demo
    public class JModel_demo {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		new myList();
    	}
    
    }
    
  • 相关阅读:
    面试中遇到递归算法题别慌--常见递归算法题的解题思路
    Xml日志记录文件最优方案(附源代码)
    linux下源码安装软件
    文本比较算法Ⅴ——回顾贴,对前面几篇文章的回顾与质疑
    从内存中直接运行PE程序
    谈谈Linux内核驱动的coding style
    【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
    玩转C链表
    麻省理工《C内存管理和C++面向对象编程》笔记---第一讲:认识C和内存管理
    Dll注入技术之输入法注入
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5316538.html
Copyright © 2020-2023  润新知