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();
    	}
    
    }
    
  • 相关阅读:
    vue双向绑定的时候把遍历的数组转为了字符串,并且再转回去数组进行绑定
    使用for of循环遍历获取的nodeList,配置babel编译,webpack打包之后在iphone5下报错
    iview表单验证不生效问题注意点
    babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效
    swiper4自动轮播切换手动触碰后停止踩坑——属性disableOnInteraction
    移动网页广告引入mraid.js使用指南
    react项目和next项目修改默认端口号
    windows安装mongodb服务简洁版教程
    Fiddler抓包手机代理配置
    手机配置代理报错invalid host header
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5316538.html
Copyright © 2011-2022 走看看