当前位置:  技术问答>java相关

初学者:为什么单独声明类建立object?

    来源: 互联网  发布时间:2015-06-02

    本文导语:  import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class JComboBoxTest extends JFrame {      public static void main(String args[]) {           JComboBoxTest test=new JComboBoxTest();          ...

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class JComboBoxTest extends JFrame {
     public static void main(String args[]) {
          JComboBoxTest test=new JComboBoxTest();
          test.setSize(300,200);
          test.setVisible(true);
       }

 public JComboBoxTest() {
/////=========
      TestComboBox jcb=new TestComboBox(this);

 ///// 这里为什么要调用单独声明的一个类来建立一个JComboxBox,而不直接用JComboBox类的构造函数:JComboBox(),JComboBox(Object[] items),JComboBox(Vector items) 来直接建立一个JComboBox ??  我是个初学者,希望大家能够给我一点比较详细的解析说明,谢谢!
另外,像这里这种形式的声明,在其他的地方也见到过,如JFileChooser类也是用单独的类来建立一个JFileChooser而没有用他本身的函数,类如如此的问题,请各位高手赐教!!
/////===================
      jcb.setEditable(true);

      getContentPane().add(jcb,BorderLayout.NORTH);

      jcb.addItem(new String("www.sina.com"));
      jcb.addItem(new String("www.163.com"));

      }
   }

   class TestComboBox extends JComboBox {
       private JComboBoxTest parent;

       public TestComboBox(JComboBoxTest p ) {
       parent=p;
       }

 public void actionPerformed(ActionEvent e )  {
      hidePopup();
      String text=e.getActionCommand();
      removeItem(text);
      insertItemAt(text,0);

      if (getItemCount() > 5)
          removeItemAt(5);
          setSelectedIndex(0);
         }
  public void contentChanged(ListDataEvent e) {
       parent.setTitle((String)getSelectedItem());
       }

  public void intervalAdded(ListDataEvent e) {
   }

  public void intervalRemoved(ListDataEvent e) {
   }

}

|
这样写的目的主要是重载JComboBox 的方法.如TestComboBox 中就重载了
actionPerformed(),contentChanged等方法.
如果直接用JComboBox类的构造函数,就只能用JComboBox的缺省行为.
这种例子在改java swing的控件view中尤为常见,缺省的样子不行,就必须重载方法.

|
你的这个问题太奇怪了,
某些人认为怎样写比较清楚,对代码维护提供方便。
向你这样能作也可以,
其实没有太大区别。
任选一个吧。

|
一个常用的手段而已

《设计模式》里这样的手法很多

就是好像是利用一个接口,把自己不需要或者需要修改的方法屏蔽掉

    
 
 

您可能感兴趣的文章:

  • 又一个初学者的困惑!如果您是个大虾,请你一定要进来看看,指点迷津!如果您也是个初学者,那么您也一定要进来,也许我们有一样的遭遇!
  • 初学者的问题我是linux初学者,我想问一下在windows里下载的大于1.44M文件如何转移到linux分区里?
  • 我是个初学者,希望指点明津
  • 初学者用什么工具好?JBUILDER?JDK?
  • 对于初学者应该看什么样的java书籍
  • 我是初学者,该用什么java的“编译器”????
  • 对于初学者应该看什么样的书
  • 初学者:不是问题的问题?
  • 初学者这样检验自己的学习效果呢?
  • 初学者的问题??在线等待。
  • linux初学者应该看什么书
  • 初学者的疑问
  • Free Java的初始设置问题----初学者求教.
  • 各位大虾,一个初学者该怎样开始学习java?
  • 熟悉weblogic&ejb2.0的请进(初学者就不用看了)
  • 怎样学习Java,我是个初学者。
  • 我是一个java初学者
  • 初学者的问题!
  • 小弟是初学者,请推荐几本不错的unix书籍。
  • 请指点:初学者应怎样学习?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 给初学者!
  • 我是java的初学者,谁能告诉我什么书最好,谢谢
  • 请问有哪些书适合我们初学者?
  • JAVA初学者的困惑
  • 请教学习java的经验(对于初学者)?
  • 初学者:怎样在linux下用C编程啊?
  • 小弟是初学者,请推荐几本不错的java书籍。
  • 求适合初学者读的书
  • linux初学者的贴
  • 请问对于初学者应该使用哪种版本的linux比较好?
  • linux初学者的一些问题
  • shell初学者
  • 我想用Linux学程序,不知道哪个发行版比较适合初学者?
  • 请问什么是“设计模式”,有这方面的教材吗?望各位大侠指点指点初学者。谢谢!
  • zt:向KDE/QT编程初学者推荐一个网站 from : 中国Linux公社 by :liskman
  • Qt初学者请教大家几个问题!
  • .net/c#/asp.net iis7站长之家
  • 编译参数问题,初学者的问题,请多帮忙
  • JBuilder初学者,帮我推荐几本比较好的书,好吗?(最好能具体点儿,谢谢 ~~~)
  • Linux初学者,Linux安装的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3