// a simple exmple that can show the basis of swing
-------------------------------------------------------------------------
// import pakages which we need
import javax.swing.*;
import java.awt.*;
public class HelloCsdn
{
public static void main(String[] args)
{
HelloCsdnFrame frame=new HelloCsdnFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/
-------------------------------------------------------------------------

class HelloCsdnFrame extends JFrame{
public HelloCsdnFrame()
{
setTitle("Hello CSDN.NET");
setSize(WIDTH,HEIGHT);
HelloCsdnPanel panel=new HelloCsdnPanel();
Container c=getContentPane();
c.add(panel);
}
public static final int WIDTH=300;
public static final int HEIGHT=200;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*
--------------------------------------------------------------------
class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/
  我把此程序分为3part.每一部分都有注释,这一段代码是做什么用的。 一起来分析此程序:

作者:leeak出处:Java编程教学网责任编辑: 方舟 [ 2004-07-15 14:33 ]当我们学习过了java中的基本语法,并且熟悉java的面向对象基础以后


  在第一部分

// import pakages which we need
import javax.swing.*;
import java.awt.*;
public class HelloCsdn
{
public static void main(String[] args)
{
HelloCsdnFrame frame=new HelloCsdnFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
/** this part we construct a new frame HelloCsdnFrame
*/
  可以看到我们首先导入了2个包 swing 和 awt,创建了一个object对这个object我们进行实例化, 然后用代码

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show(); 来实现关闭Frame,但不是结束程序,其中止的只是程序的主线程,
  第二部分:

class HelloCsdnFrame extends JFrame{
public HelloCsdnFrame()
{
setTitle("Hello CSDN.NET");
setSize(WIDTH,HEIGHT);
HelloCsdnPanel panel=new HelloCsdnPanel();
Container c=getContentPane();
c.add(panel);
}
public static final int WIDTH=300;
public static final int HEIGHT=200;
}
/**this part we extend our HelloCsdnFram to JFrame and
construct a new object HelloCsdnPanel and add it on the frame
/*
  在此我们把我们建立的object继承java的JFrame类,使他有JFrame的属性.行为.然后设置标题和大小,再次建立一个新的object HelloCsdnPanel 这是因为是在JFrame中实现的所以要建立容器c .把我们建立的panel对象放入containerc中。

  第三部分

class HelloCsdnPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawString("Hello CSDN.NET",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X=100;
public static final int MESSAGE_Y=100;
}
/** A panel that display a message
*/ 继续我们继承刚建立的HelloCsdnPanel
  到JPanel使我们的对象有JPanel的属性,然后我们才能调用在frame上输出字符的方法g.drawString
由此程序我们一方面可以很好的看出java的核心思想----继承关系,另一方面可以看出swing的基本构架是什么。

  他有几个层,每个层实现自己的什么功能。

  5.自此我们可以看出frame的内部结构:

------JFrame(底层)
   |
   ---------JRoot
|
---------JLayeredPane
   |
   -----------菜单条
|
-----------内容窗格
    |
    -----------透明窗格(顶层)

  而在这6个层中我们最关系的是菜单条和内容窗格.因为它觉定我们的frame是什么样的。

swing入门例子的更多相关文章

  1. 【Bootstrap Demo】入门例子创建

    本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...

  2. 【Bootstrap】入门例子创建

    本文简单介绍下如何来使用 Bootstrap,通过引入 Bootstrap,来实现一个最基本的入门例子. 在前一篇博文[Bootstrap]1.初识Bootstrap 基础之上,我们完全可以更加方便快 ...

  3. spring boot入门例子

    最近学习spring boot,总结一下入门的的基础知识 1新建maven项目,修改pom.xml <project xmlns="http://maven.apache.org/PO ...

  4. MINA经典入门例子----Time Server

    原文地址 http://blog.sina.com.cn/s/blog_720bdf0501010b8r.html 貌似java的IO.NIO的入门例子都有相关的Time Server Demo.本例 ...

  5. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import ...

  6. JPA入门例子(采用JPA的hibernate实现版本) 转

    JPA入门例子(采用JPA的hibernate实现版本) jpahibernate数据库jdbcjava框架(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化 ...

  7. Cassandra 单机入门例子——有索引

    入门例子: http://wiki.apache.org/cassandra/GettingStarted 添加环境变量并source生效,使得可以在任意位置执行cassandra/bin安装目录下的 ...

  8. Orleans入门例子

    Orleans入门例子 这是Orleans系列文章中的一篇.首篇文章在此  一.铺垫. 虽然是个入门例子,还是需要一些铺垫. Orleans的最小完全体,应该分为2个部分.一个是Orleans客户端, ...

  9. Quartz入门例子简介 从入门到菜鸟(一)

    转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039   刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...

随机推荐

  1. 设计模式(3)-对象创建型模式-Abstract Factory模式

    1.对象创建型模式 1.3           Abstract Factory模式 1.3.1 需求 在下面情况能够使用Abstract Factory模式: •  一个系统要独立于它的产品的创建. ...

  2. 数据库系统原理及其应用总结---ShinePans

    第一章  数据库概论 1.在数据库管理技术的发展过程中.数据库独立性最高的是"数据库系统"阶段 2.三大经典的数据结构模型是"关系.层次和网状模型" 3.单个用 ...

  3. Python笔记:使用pywin32处理excel文件

    因为前端同事须要批量的对excel文件做特殊处理,删除指定行,故写了此脚本.同一时候配合config.ini方便不熟悉py的同事使用 #!/usr/bin/env python #-*- coding ...

  4. C#使用 SQLite 数据库 开发的配置过程及基本操作类,实例程序:工商银行贵金属行情查看小工具

    --首发于博客园, 转载请保留此链接  博客原文地址 本文运行环境: Win7 X64, VS2010 1. SQLite 的优点: SQLite 是一款轻型数据库,开发包只有十几M, 相对于 MSS ...

  5. Java基础知识强化42:StringBuffer类之StringBuffer的截取功能

    1. StringBuffer的截取功能: public String subString(int Start): public String subString(int Start, int end ...

  6. 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】

    /Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...

  7. css单位rem---移动端至宝

    1.rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem大 家一定会想起em单位em(font  ...

  8. css3新增的背景属性

    有时候我们需要往边框文字上添加背景与背景图片的时候就有用处了 background的css3有两个新增属性分别是background-clip与background-origin;背景-修剪与背景起点 ...

  9. NHibernate——基本映射(5)

    一.映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的.这个映射文档被设计为易读的,并且可以手工 ...

  10. Geodatabase - 修改字段别名(Field Alias)

    以下代码演示的是通过个人数据库打开要素类,并对指定的字段别名进行修改,其中,需要注意的是,不能通过Engine中的AxMapControl直接获得,如 //直接获得IFeatureClass. //E ...