博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中对同一问题分别使用内部类与匿名内部类实现
阅读量:4323 次
发布时间:2019-06-06

本文共 4024 字,大约阅读时间需要 13 分钟。

JAVA中对同一问题分别使用内部类与匿名内部类实现,基于轻量级组件Swing中JComboBox组件来举例说明,希望能够有助于深入理解内部类与匿名内部类的区别以及其使用。

package com.han;import javax.swing.*;import java.awt.*;import java.awt.event.*;/** * 设计了一个Swing窗体,其中包括了JComboBox组件(下拉列表框), * 在下面的代码中运用了内部类的手段。 * @author HAN * */@SuppressWarnings("serial")public class SwingJComboBox extends JFrame{	public SwingJComboBox(){		setLayout(null);		setBounds(130,30,300,200);		Container c=getContentPane();		final MyComboBox obj1=new MyComboBox();		@SuppressWarnings({ "unchecked", "rawtypes" })		JComboBox jc=new JComboBox(obj1);		jc.setBounds(0,0,290,20);//		System.out.println(obj1.getElementAt(0));		jc.addActionListener(new ActionListener(){			public void actionPerformed(ActionEvent arg0){			    System.out.println(obj1.getSelectedItem());			}		});		JCheckBox jck1=new JCheckBox("男");		JCheckBox jck2=new JCheckBox("女",true);		jck1.setBounds(100,80,40,20);		jck2.setBounds(140,80,40,20);		JButton jb1=new JButton("确定");		JButton jb2=new JButton("取消");		jb1.setBounds(80,130,60,30);		jb2.setBounds(140,130,60,30);		c.add(jc);		c.add(jck1);		c.add(jck2);		c.add(jb1);		c.add(jb2);		setVisible(true);		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //very important !!	}		@SuppressWarnings("rawtypes")	class MyComboBox extends AbstractListModel implements ComboBoxModel {		String selecteditem="军人证";		String[] test={"身份证","军人证","学生证"};		public void setSelectedItem(Object item){			selecteditem=(String)item;		}		public Object getSelectedItem(){			return selecteditem;		}		@Override		public int getSize() {			// TODO Auto-generated method stub			return test.length;		}		@Override		public Object getElementAt(int index) {			// TODO Auto-generated method stub			return test[index];		}			}	    public static void main(String[] args){    	new SwingJComboBox();    	    }}
package com.han;import javax.swing.*;import javax.swing.event.ListDataListener;import java.awt.*;import java.awt.event.*;/** * 设计了一个Swing窗体,其中包括了JComboBox组件(下拉列表框), * 在下面的代码中运用了匿名内部类的手段。 * @author HAN * */@SuppressWarnings("serial")public class SwingJComboBox extends JFrame{	public static String selectedItem;	public SwingJComboBox(){		setLayout(null);		setBounds(130,30,300,200);		Container c=getContentPane();//		final MyComboBox obj1=new MyComboBox();		@SuppressWarnings({ "unchecked", "rawtypes" })		JComboBox jc=new JComboBox(new ComboBoxModel(){			String selecteditem="军人证";			String[] test={"身份证","军人证","学生证"};//			public void getItem(){//				selectedItem=selecteditem;//			}			@Override			public int getSize() {				// TODO Auto-generated method stub				return test.length;			}			@Override			public Object getElementAt(int index) {				// TODO Auto-generated method stub				return test[index];			}			@Override			public void setSelectedItem(Object anItem) {				// TODO Auto-generated method stub				selecteditem=(String) anItem;			}			@Override			public Object getSelectedItem() {				// TODO Auto-generated method stub//				getItem();				selectedItem=selecteditem;				return selecteditem;			}			@Override			public void addListDataListener(ListDataListener l) {				// TODO Auto-generated method stub							}			@Override			public void removeListDataListener(ListDataListener l) {				// TODO Auto-generated method stub							}					});		jc.setBounds(0,0,290,20);//		System.out.println(obj1.getElementAt(0));		jc.addActionListener(new ActionListener(){			public void actionPerformed(ActionEvent arg0){			    System.out.println(selectedItem);			}		});		JCheckBox jck1=new JCheckBox("男");		JCheckBox jck2=new JCheckBox("女",true);		jck1.setBounds(100,80,40,20);		jck2.setBounds(140,80,40,20);		JButton jb1=new JButton("确定");		JButton jb2=new JButton("取消");		jb1.setBounds(80,130,60,30);		jb2.setBounds(140,130,60,30);		c.add(jc);		c.add(jck1);		c.add(jck2);		c.add(jb1);		c.add(jb2);		setVisible(true);		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //very important !!	}		    public static void main(String[] args){    	new SwingJComboBox();    	    }}

转载于:https://www.cnblogs.com/javaTest/archive/2011/12/30/2589209.html

你可能感兴趣的文章
mysql日志详细解析
查看>>
解决关闭app权限弹框后无法识别页面对象问题
查看>>
struts2_对Map进行双层迭代
查看>>
asp.net是什么?asp.net、vb.net和c#.net有什么区别?
查看>>
PhotoView
查看>>
hdu 1735(贪心) 统计字数
查看>>
iOS 系统框架结构图
查看>>
uml系列(六)——行为图:活动&状态
查看>>
Learning Deconvolution Network for Semantic Segme小结
查看>>
Leetcode 424.替换后的最长重复字符
查看>>
第二阶段:2.商业需求文档MRD:1.M版本管理
查看>>
我爱Java系列---【单列集合和双列集合总结】
查看>>
新开始
查看>>
git - 如何从项目中删除git跟踪
查看>>
MacBook Air密码忘了,苹果电脑密码忘了怎么办
查看>>
PHP二维数组排序
查看>>
.Net Core WebApi返回的json数据,自定义日期格式
查看>>
C语言运算符表
查看>>
网络调试 adb connect
查看>>
ormlite 文档
查看>>