借鉴了java 核心技术卷1    并参考http://www.jb51.net/article/56158.htm 添加了JTextField的使用。

##################################################################################################

package com;

import java.awt.Dimension;
import java.awt.Graphics;         //添加graphics对象

import javax.swing.JComponent;

public class NotHelloWorldComponent extends JComponent {
   /**
  *
  */
 private static final long serialVersionUID = 1L;
    //定义参数
 public static final int MESSAGE_X=75;
 public static final int MESSAGE_Y=100;
 
 private static final int  DEFAULT_WIDTH=300;
 private static final int  DEFAULT_HEIGHT=500;
 
 //绘图方法
 public void paintComponent(Graphics g){
  g.drawString("Not a Hello,World program", MESSAGE_X, MESSAGE_Y);
 }
 //覆盖getPreferredSize方法,返回组件大小  Dimension对象
 public Dimension getPreferredSize(){
  return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
 }
}

##################################################################################################

添加JFrame框架

package com;
import javax.swing.* ;                             //导入swing包
import java.awt.*;                                 //导入awt包

public class McStart extends JFrame{               //继承JFrame
private static final long serialVersionUID = 1L;

public McStart(){                                  //构造函数 

 add(new NotHelloWorldComponent());             //添加JComponent组件
 pack();
 
 Toolkit kit=Toolkit.getDefaultToolkit();       //获取Tookit
 Dimension screenSize=kit.getScreenSize();      //getScreenSize方法,类型为Dimension
 int screenHight=screenSize.height;             //取hight
 int screenWidth=screenSize.width;              //取width
 
 //设置窗口宽和高
 setSize(screenHight/2,screenWidth/2);
 setLocationByPlatform(true);   
 
 //设置图片,先new一个对象并传入参数后赋予set函数
 Image img=new ImageIcon("icon.gif").getImage();
 setIconImage(img);    //设置标题栏,任务栏以及切换窗口等位置显示的图标
}

}

#####################################################################################################

主函数:

package com;

import java.awt.EventQueue;
import javax.swing.JFrame;
                           
public class SizeFrameTest {

public static void main(String[] args) {
  // TODO Auto-generated method stub
  EventQueue.invokeLater(new Runnable()    //匿名内部类,实现run方法,事件分派线程
  {
  public void run()
  {
  JFrame frame=new McStart();     //实例化一个McStart对象
  frame.setTitle("McStart");      //设置窗口标题栏的文字
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //响应用户动作,关闭框架的显示   详情见P259
  frame.setVisible(true);   //显示组件
  } 
  });
 }
}

###################################################################################################

java SE编写图形应用程序的更多相关文章

  1. mac下需要安装旧 Java SE 6 才能打开程序解决办法

    今天我在mac系统下面安装myeclipse2014(myeclipse-pro-2014-GA-offline-installer-macosx.dmg)的时候,发现显示错误: 您需要安装旧 Jav ...

  2. Java记事本编写第一个程序“你好,世界”

  3. 第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

  4. java se系列(一)开发前奏

    1. 软硬件知识 电子计算机:俗称电脑,是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机 cpu:是一台计算机的运算核心和控制核 ...

  5. Java编写画图板程序细节-保存已画图形

    没有Java编写画图板程序细节-保存已画图形   一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后 ...

  6. 黑马程序员 ——Java SE(1)

    ----<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训 ...

  7. Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序

    演示TCP的传输的客户端和服务端的互访 需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息. 客户端: 1.建立Socket服务,指定要连接方朵和端口 2.获取Socket流中的输出流,将数 ...

  8. Java入门——编写并运行第一个程序

    Java入门——编写并运行第一个程序 摘要:本文主要介绍如何使用Java语言编写并通过DOS运行简单的程序. 编写简单的程序 在D盘新建一个文本文档,输入如下代码: class Hello { pub ...

  9. JAVA记事本的图形用户界面应用程序含过滤

    JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note; import java.awt.EventQueue; import java.awt.ev ...

随机推荐

  1. 安卓开发学习经历2--《第一行代码》coolweather项目SQL语句同一个“陷阱”掉两次 注意转义字符等特殊字符正确书写 关于Id字段自增加体会

    今天,在运行<第一行代码>coolweather第二阶段代码,又一次报错,还是神奇地与昨天相似,提示,city_id字段不存在,这里我有两种理解,一种是sql语句出错了,另外一种是没有获取 ...

  2. jsp静态、动态引入其他jsp

    1. <%@ include file="page.jsp"%> /*静态引入,内容必须写成固定值*/    在servlet容器转化jsp为servlet时,将引入的 ...

  3. 如何在一个网站或者页面写js

    如何在一个网站或者页面写js: 1. JS的分层(功能):jquery(tools)  组件(ui)  应用(app).mvc(backboneJS) 2. JS的规划(管理):避免全局变量和方法(命 ...

  4. 表单和 HTML 辅助方法– ASP.NET MVC 4 系列

           这里有一个疑问,诸如在文本编辑器中输入 HTML 元素如此简单的任务,也需要任何帮助吗?的确,输入标签名称是很容易的事,但是确保 HTML 页面链接中的 URL 指向正确的位置.表单元素 ...

  5. golang: 根据json生成go源文件

    https://github.com/ChimeraCoder/gojson $ git clone https://github.com/ChimeraCoder/gojson.git$ cd go ...

  6. linux 删除进程的多种方法

    kill pid kill -9 pid kill -15 pid pkill -f *.php kill -s 9 pid

  7. # C/C++的笔试题目

    p,li { white-space: pre-wrap } # C/C++的笔试题目 + include<> 和include"" 的区别 + sizeof操作符与字 ...

  8. ruby中 Win32ole的各应用操作方法(word excel Outlook IE)

    Win32ole为标准Ruby发行版的一部分.Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互.具体说来Win32ole可以操作Word,Excel,IE, ...

  9. go 语言中常用的包

    来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...

  10. http 301 和 302 的区别!

    1.什么是301转向?什么是301重定向? 301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种, ...