`
891633093
  • 浏览: 48881 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java之初学图形程序设计-面板中显示信息

阅读更多
***********************在面板中显示信息************************
JFrame中有四层面板: 根面板、层级面板、玻璃面板和内容窗格,swing程序员对前三者不太关心,它们是用

来组织菜单栏和内容窗格以及实现观感的,swing程序员最关心内容窗格,在设计框架的时候,要使用下面代码

把所有组件放到内容窗格中:
Container contentPane = frame.getContentPane();
Componet c= ..;
contentPane.add(c);

在面板上绘图前提:

1.定义一个扩展于JPanel的类

2.在这个类中,覆盖paintComponent方法

eg:
class MyPanel extends JPanel{
public void paintComponent(Graphics g){
..//code for drawing will go here
}
}
只要窗口需要重绘,事件处理器就会通告组件,从而调用painComponent方法 

如果需要强制重绘,就需调用repaint方法,而不是painComponent

显示文本是一种特殊的绘图,Graphics类有个drawString 方法,调用的格式为:

g.drawString(text,x,y)

eg:g.drawString(“not a hello world”,100,150);

为了确保超类完成自己那份工作,必须在绘制自己内容前调用super.paintComponent方法

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

public class NotHelloWorld{
public static void main(String[] args){
NotHelloWorldFrame frame = new NotHelloWorldFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_CLOSE);
frame.setVisible(true);
}
}

class NotHelloWorldFrame extends JFrame{
public NotHelloWorldFrame(){
setTitle("nothelloworld");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
NotHelloWorlPanel panel = new NotHelloWorldPanel();
add(panel);
}
public static final int DEFALUT_WIDTH = 300;
public static final int DEFALUT_HEIGHT = 200;
}

class NotHelloWorldPanel extends JPane{
public void paintComponet(Grapics g);{
super.paintComponet(g);
g.drawString("not a hello world",MESSAGE_X,MESSAGE_Y);
}
public static final int MESSAGE_X = 75;
public static final int MESSAGE_Y = 100;
}

************************注释******************************

-------------javax.swing.JFrame

1.Container getContentPane()
返回该JFrame内容的窗格对象
2.void add(Component c)
将给定的组件添加到该框架的内容窗格中

--------------java.awt.component

1.repaint()
“尽可能快的”重绘组件
2.public void repaint(int x,int y,int width ,int height)
“尽可能快的”重绘组件的一部分

-------------javax.swing.JComponent

void paintComponent(Graphics g)

覆盖这个方法来描述应该如何绘制自己的组件[color=blue]
[/color]
分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    2个目标文件 摘要:Java源码,网络相关,UDP 基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式...

    java源码包2

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包4

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java源码包3

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目源代码

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    JAVA上百实例源码以及开源项目

     基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。 简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 ...

    java j2ee 课程设计报告

    有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。 拼图游戏是一种很流行的小游戏,记得在小时候去游戏厅玩的时候就有一台专门的拼图的机器。当时的拼图分好几层,看得人眼花缭乱。作为一个...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用字符串构建器追加字符 100 实例081 去掉字符串中的所有空格 101 实例082 ...

    Tcl_TK编程权威指南pdf

    Tcl和与之关联的图形用户界面工具包(Tk)是由加州大学的John Ousterhout教授设计并编写的。尽管它是个商用软件包,但你也可以在Internet上找到它(见第VII页),而且可以在自己的应用程序中自由使用这个软件包。Tcl解释...

    Activiti6.0教程例子下载

    所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。 例如开发一个系统最关键的部分不是系统的界面,也...

Global site tag (gtag.js) - Google Analytics