import java.awt.*;import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import java.awt.image.MemoryImageSource;class H1 extends JFrame implements ActionListener
{
private int a;
private static final long serialVersionUID = -7318514688915584864L;
public H1()
{
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBounds(200,50,700,600);
Container frameContainer = getContentPane();
setLayout(null);
setVisible(true);
}
public void setA(int a)
{
this.a = a;
}
public int getA()
{
return this.a;
} public void actionPerformed(ActionEvent e)
{
//输入响应ActionEvent操作
}
public void paint(Graphics g)
{
// super.paint(g);
int w = 300;
int h = 300;
int pix[] = new int[w * h];
int index = 0;
for (int y = 0; y < h; y++) {
int red = (y * 255) / (h - 1);
for (int x = 0; x < w; x++) {
int blue = (x * 255) / (w - 1);
pix[index++] = (255 << 24) | (red << 16) | blue;
}
}
Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
System.out.println(img.getClass()); //为什么多次输出。按理说应该执行一次。
g.drawImage(img, w, h, this);
}
public static void main(String args[])
{
H1 de = new H1();
}
}
import java.io.*;
import java.awt.event.*;
import java.awt.image.MemoryImageSource;class H1 extends JFrame implements ActionListener
{
private int a;
private static final long serialVersionUID = -7318514688915584864L;
public H1()
{
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBounds(200,50,700,600);
Container frameContainer = getContentPane();
setLayout(null);
setVisible(true);
}
public void setA(int a)
{
this.a = a;
}
public int getA()
{
return this.a;
} public void actionPerformed(ActionEvent e)
{
//输入响应ActionEvent操作
}
public void paint(Graphics g)
{
// super.paint(g);
int w = 300;
int h = 300;
int pix[] = new int[w * h];
int index = 0;
for (int y = 0; y < h; y++) {
int red = (y * 255) / (h - 1);
for (int x = 0; x < w; x++) {
int blue = (x * 255) / (w - 1);
pix[index++] = (255 << 24) | (red << 16) | blue;
}
}
Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));
System.out.println(img.getClass()); //为什么多次输出。按理说应该执行一次。
g.drawImage(img, w, h, this);
}
public static void main(String args[])
{
H1 de = new H1();
}
}
解决方案 »
- socket文件传输问题
- 不显示删除回复显示所有回复显示星级回复显示得分回复 跪求《Thinking in Java》教材的课后习题答案(附加小问题的)(一个大一菜鸟的发问)
- 【求助】Sql2005的问题
- 继续询问有关excel的问题:有关复制
- 关于用jdbc读取oracle92默认的时间格式的问题
- 高手请进 web问题
- 我们Java方向如何面试
- 进者有分,问一个设计模式上的问题,大家参与讨论,在工程中很实用,关于CONNECTION每次用完后要关闭的问题,看谁能把这个问题复用封装的最好
- 可不可以在某个类中设置另一个类的组件的值??
- java调用Matlab运行如何脱离matlab运行环境
- try-catch-finally
- 图形界面的java 两个Label显示,如何上下换行表示
答:paint(Graphics g)方法的执行,是由JAVA的GUI系统内部调用的,而且这个调用是:JAVA内部系统认为需要时,可自动调用多次(如:窗口大小改变,窗口切换,以及其它许多种JAVA内部系统认为需要调用的情况....)