JAVA中对同一问题分别使用内部类与匿名内部类实现
来源:互联网 发布:围棋对弈软件 编辑:程序博客网 时间:2024/06/07 18:01
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;}@Overridepublic int getSize() {// TODO Auto-generated method stubreturn test.length;}@Overridepublic Object getElementAt(int index) {// TODO Auto-generated method stubreturn 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;//}@Overridepublic int getSize() {// TODO Auto-generated method stubreturn test.length;}@Overridepublic Object getElementAt(int index) {// TODO Auto-generated method stubreturn test[index];}@Overridepublic void setSelectedItem(Object anItem) {// TODO Auto-generated method stubselecteditem=(String) anItem;}@Overridepublic Object getSelectedItem() {// TODO Auto-generated method stub//getItem();selectedItem=selecteditem;return selecteditem;}@Overridepublic void addListDataListener(ListDataListener l) {// TODO Auto-generated method stub}@Overridepublic 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(); }}
- JAVA中对同一问题分别使用内部类与匿名内部类实现
- JAVA中内部类和匿名内部类的区别,分别在什么时候使用它们?
- Java内部类与匿名内部类
- JAVA内部类 与 匿名内部类
- Java 内部类与匿名内部类
- Java 内部类与匿名内部类
- Java内部类与匿名内部类
- Java -> 内部类与匿名内部类
- java中匿名内部类的问题
- Java匿名内部类使用与示例
- java中匿名内部类的使用
- java中匿名内部类
- java中匿名内部类
- java 匿名内部类使用
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- 基于VC的MFC计算器案例步骤及源代码
- 百度地图API入门——(8)百度地图的背景知识:关于地图的基本常识
- JAVA分别实现Windows平台和Linux平台下的ip获取
- 编辑距离
- 自己想要改变的编程流程习惯
- JAVA中对同一问题分别使用内部类与匿名内部类实现
- 硬链接和软链接的区别
- JAVA线程的应用实例(运用2种中断线程方式,基于实现进度条为例)
- 对人形容词
- Client instance is standby database instead of primary
- JAVA实现图像缩放(通过 java.awt.geom的仿射变换结合java.awt.image的各种插值方法实现)
- DAX之LOOKUPVALUE函数
- 6步搞定基于Ubuntu Linux的Hadoop的安装与配置
- GlobalObject::CollectGarbage Method