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(); } }
您还没有登录,请您登录后再发表评论
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
不写时默认为friendly2、 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类, 是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个...
我们Android开发中经常用到一些匿名内部类,及其其中的回调函数,例如,我们给Button设置监听器时候通常要实现OnCLickListener接口,并重写其中的Onclick()方法,这就是匿名内部类与回调函数,那么你对Java匿名...
通过扩展类和实现接口两种方式定义匿名内部类。 机动时间和复习 2课时 <br> 第8章 异常和断言 4课时 理解异常和错误处理的概念。 学习使用throw,throws检测抛出...
一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
(2)对排好序的数组使用折半查找(使用递归和非递归两种形式分别实现)查找某一个int元素。 2、使用一维数组编码实现一个栈(Stack)类,要求提供以下操作:(1)boolean isEmpty():判断栈当前是否为空;(2)入栈...
Toad 使用快速入门 目录 一.Toad功能综述 二.系统需求 三.安装指南 四.快速入门 1. Schema browser的用法简介 2. SQL Editor的使用介绍 3. Procedure Editor的用法介绍 4. 如何进行PLSQL的debug 5. 如何...
没错,上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条,用jquery就那么简单。两个函数接受的参数除了快慢等,还可以接收整型,作为渐入或淡出的完成时间,...
11.7.1 匿名函数与lambda 11.7.2 内建函数apply().cfilter().cmap().creduce() 11.7.3 偏函数应用 11.8 变量作用域 11.8.1 全局变量与局部变量 11.8.2 globa语句 11.8.3 ...
11.7.1 匿名函数与lambda 11.7.2 内建函数apply()、filter()、map()、reduce() 11.7.3 偏函数应用 11.8 变量作用域 11.8.1 全局变量与局部变量 11.8.2 globa语句 11.8.3 ...
相关推荐
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
不写时默认为friendly2、 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类, 是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
我们Android开发中经常用到一些匿名内部类,及其其中的回调函数,例如,我们给Button设置监听器时候通常要实现OnCLickListener接口,并重写其中的Onclick()方法,这就是匿名内部类与回调函数,那么你对Java匿名...
通过扩展类和实现接口两种方式定义匿名内部类。 机动时间和复习 2课时 <br> 第8章 异常和断言 4课时 理解异常和错误处理的概念。 学习使用throw,throws检测抛出...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...
2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
(2)对排好序的数组使用折半查找(使用递归和非递归两种形式分别实现)查找某一个int元素。 2、使用一维数组编码实现一个栈(Stack)类,要求提供以下操作:(1)boolean isEmpty():判断栈当前是否为空;(2)入栈...
Toad 使用快速入门 目录 一.Toad功能综述 二.系统需求 三.安装指南 四.快速入门 1. Schema browser的用法简介 2. SQL Editor的使用介绍 3. Procedure Editor的用法介绍 4. 如何进行PLSQL的debug 5. 如何...
没错,上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条,用jquery就那么简单。两个函数接受的参数除了快慢等,还可以接收整型,作为渐入或淡出的完成时间,...
11.7.1 匿名函数与lambda 11.7.2 内建函数apply().cfilter().cmap().creduce() 11.7.3 偏函数应用 11.8 变量作用域 11.8.1 全局变量与局部变量 11.8.2 globa语句 11.8.3 ...
11.7.1 匿名函数与lambda 11.7.2 内建函数apply()、filter()、map()、reduce() 11.7.3 偏函数应用 11.8 变量作用域 11.8.1 全局变量与局部变量 11.8.2 globa语句 11.8.3 ...