浅谈JFrame

引子:

组件容器框架三者区别:

组件:是一个具有完备功能的服务接口,可以使用组件去构建一个系统。比如要编写一个计算器的系统,你可以找到加法、减法、乘法、除法的组件。只要给他们合适的参数就能为你返回结果。你搭建系统的时候只要使用这几个组件就行了。

容器:是指符合一定的规范能提供一系列服务的管理器,方便别人使用它来完成一系列的功能例如tomcat,使用tomcat可以提供servlet.jsp等服务,俗称叫servlet服务器,在服务器中会有相关的容器,servlet容器可以调用servlet和jsp动态生成html。

框架:是构成一类特定软件可复用设计的一组相互协作的类,框架规定了你的应用程序的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。

正文:

JFrame定义:

  Swing的三个基本构造块:标签、按钮和文本字段;但是需要个地方安放它们,并希望用户知道如何处理它们。JFrame类就是解决这个问题的——它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。JFrame实际上不仅仅让程序员把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。

问题:

    我们可以在 JFrame 对象中添加 AWT 或者 Swing 组件。但是,虽然它有 add 方法,却不能直接用于添加组件,否则会抛出异常——不信就试试。

解释:

       JFrame不是一个容器,它只是一个框架。(实际在开发中)

JFrame如何添加组件:

    JFrame有一个ContentPane,窗口能显示的所有组件都是添加在这个ContentPane中。到这里新的问题来了:什么是ContentPane呢?其实ContentPane是一个容器,它包含了所有的框架(除了菜单栏)。每个JFrame的ContentPane都有包含了这个窗口所能显示的所有组件。JFrame提供两个方法:getContentPane和SetContentPane 就是用于获取和设置其 ContentPane 的。

对JFrame添加组件有两种方式:
  1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:
JFrame jf = new JFrame("myJFrame");
Container c = jf.getContentPane();//创建一个容器,方便向框架内添加组件
c.add(你所想添加的东西);

   2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:
JPanel  contentPane=new  JPanel();
……//把其它组件添加到Jpanel中;
JFrame.setContentPane(contentPane);
//把contentPane对象设置成为JFrame的内容面板

JFrame类的用法:

1、 JFrame()——创建一个无标题的窗口。
2、 JFrame(String s)——创建一个标题为s的窗口。
3、public void setBounds(int a,intb,int width,int heigth)
4、public void setSize(int width,int heigth)
5、public void setLocation(int x,int y)
6、public void setVisible(boolean b)
7、public void setResizable(boolean b)
8、public void setDefaultCloseOperation(int operation) ——其中的参数operation取下列有效值:
DO_NOTHING_ON_CLOSE //什么也不做
HIDE_ON_CLOSE //隐藏当前窗口
DISPOSE_ON_CLOSE //隐藏当前窗口,并释放窗体所占有的其它资源
EXIT_ON_CLOSE // 结束窗体所在的应用程序
这4个常量都是JFrame类中的int类型,单击关闭图标后,程序根据operation取值做出不同的处理。

猜你喜欢

转载自blog.csdn.net/edc3001/article/details/80011523
今日推荐