javax.swing.JComponent 调用顺序

网上截取的,感觉挺有用,记录下来。

http://bbs.csdn.net/topics/310041707

java swing 感觉好复杂啊…………一点都不想用但是作业要用到 >_<;

javax.swing.JComponent类中
repaint()调用update() 
update()调用paint() 
paint()调用paintComponent(),paintBorder(),及paintChildren()

附代码

 1 package com.test;
 2 import java.awt.Color;
 3 import java.awt.Graphics;
 4
 5 import javax.swing.JFrame;
 6 import javax.swing.JPanel;
 7
 8 public class GamePanel extends JPanel{
 9
10     private static final long serialVersionUID = 1L;
11     public GamePanel(){
12
13     }
14
15     public void display(){
16         System.out.println("GmaePanel - display");
17
18         this.repaint();
19     }
20
21     @Override
22     protected void paintComponent(Graphics g) {
23
24         System.out.println("GamePanel - ------------paintComponent");
25
26         g.setColor(new Color(0xcfcfcf));
27     }
28
29     @Override
30     public void paint(Graphics g) {
31         System.out.println("GamePanel - ------------paint");
32         super.paint(g);
33     }
34
35     @Override
36     public void update(Graphics g) {
37         System.out.println("GamePanel - ------------update");
38         super.update(g);
39     }
40
41     public static void main(String[] args){
42         JFrame frame = new JFrame();
43         frame.setSize(300,300);
44         GamePanel gp = new GamePanel();
45         frame.add(gp);
46         frame.setVisible(true);
47         gp.display();
48     }
49 }
时间: 2024-10-11 03:38:30

javax.swing.JComponent 调用顺序的相关文章

javax.swing.jFrame

原文地址:java布局管理器总结作者:技术羊 之前在使用的过程中一直对java中swing的布局管理器感到很困惑,以下是在网上找到的一篇文章.其中我重点关注了一下gridbaglayout.写的比较详尽: BorderLayout FlowLayout GridLayout GridBagLayout CardLayout BoxLayout 1.BorderLayout java.lang.Object --java.awt.BorderLayout 将版面划分成东.西.南.北.中五个区域,将

javax.swing.Timer的使用

以指定的间隔触发一个或多个ActionEvent s. 示例使用是使用Timer作为绘制其帧的触发器的动画对象. 设置定时器包括创建一个Timer对象,在其上注册一个或多个动作侦听器,并使用start方法启动定时器. 例如,下面的代码创建并启动每秒一次触发一个动作事件(由第一个参数指定定时器Timer构造函数). Timer构造函数的第二个参数指定一个侦听器来接收定时器的动作事件. public class MyTimer { public static void main(String[] a

async 与 await 线程调用顺序

用async做一个多线程下载并在datagridview中即时更新,运行时在达到4个线程同时下载时界面卡顿,多次尝试后是不知道async与await线程调用顺序造成. 进入async方法后在调用await之前代码都在主线程(调用线程)中运行,调用await时及之后的async方法代码将另起线程运行该部分代码,而主线程在遇到await后回到主线程继续执行async后的代码. 将async方法通过声明委托后用begininvoke调用后解决.

讨论printf和cout的参数调用顺序

这里纠正在网络上看到的几个错误,以下给出正确的观点: (1)printf和cout都是有缓冲机制的.(有人认为printf是没有缓冲区的) (2)printf和cout函数对参数的调用顺序在c/c++中是未定义的.(有人认为它们读入的顺序是由右向左,输出顺序是由左到右,类似于栈) 基于以上错误的认识,看下列程序,有人会得到错误的输出的结果. #include <stdio.h> #include <iostream> using namespace std; int main()

c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)

现在来测试一下在多重继承,虚继承,MI继承中虚继承中构造函数的调用情况. 先来测试一些普通的多重继承.其实这个是显而易见的. 测试代码: //测试多重继承中派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!"<<endl; }

Activity生命周期方法的调用顺序工程与测试日志

下面为测试activity的方法的执行顺序   工程与测试资源地址 android工程 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.finalizetest"

构造方法调用顺序

http://blog.csdn.net/macheng365/article/details/6403050 并不是首先调用其构造方法而是先是成员变量的初始化,而且成员的初始化的顺序以成员变量的定义顺序有关,先定义的先初始化,初始化后再调用构造方法.其实成员变量的初始化,在类的所有方法调用之前进行,包括构造方法. static的成员比普通的成员变量先初始化. public class Test04 ...{ private static Test04 t1 = new Test04(); pr

14.4-全栈Java笔记: javax.swing常用控件有哪些?怎么用?

常用基本控件 javax.swing.JButton 在图形界面程序中,按钮可能是使用量最大的控件之一,javax.swing包中JButton类就是用来创建按钮的.如表1所示,为JButton常用的构造方法.  javax.swing.JLabel JLabel控件是最简单的Swing组件之一,用于在窗体上显示标签, JLabel既可以显示文本,也可以显示图像.如表3所示,为JLabel常用的构造方法. 注意: JLabel只能用于显示文本和图标信息,用户不能对其进行修改. javax.swi

C++C++中构造函数与析构函数的调用顺序

http://blog.csdn.net/xw13106209/article/details/6899370 1.参考文献 参考1: C++继承中构造函数.析构函数调用顺序及虚函数的动态绑定 参考2: 构造函数.拷贝构造函数和析构函数的的调用时刻及调用顺序 参考3: C++构造函数与析构函数的调用顺序 2.构造函数.析构函数与拷贝构造函数介绍 2.1构造函数 构造函数不能有返回值 缺省构造函数时,系统将自动调用该缺省构造函数初始化对象,缺省构造函数会将所有数据成员都初始化为零或空 创建一个对象