zoukankan      html  css  js  c++  java
  • 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();
    	}
    
    }
    
  • 相关阅读:
    【转】正则表达式参考
    php七牛批量删除空间内的所有文件方法
    星级评分(全星)
    [转]No 'AccessControlAllowOrigin' header is present on the requested resource.'Ajax跨域访问解决方案
    在canvas中插入图片
    vue2.0 引入css文件
    修改input框样式
    js实现简单分页浏览
    [转] js 移动端 长按事件
    TypeError: console.log(…) is not a function
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5316538.html
Copyright © 2011-2022 走看看