当前位置:  技术问答>java相关

paint和repaint函数的区别,一定给分

    来源: 互联网  发布时间:2014-12-27

    本文导语:  请教paint()与repaint()方法的区别,是否可以自己写一个方法代替paint()或repaint()?我在panel上画了一个图,但移动panel后,图就不见了,why?how to resolve? | Applet子类完全正常 JApplet的子类要在paint...

请教paint()与repaint()方法的区别,是否可以自己写一个方法代替paint()或repaint()?我在panel上画了一个图,但移动panel后,图就不见了,why?how to resolve?

|
Applet子类完全正常
JApplet的子类要在paint方法中先调用父类的paint
以下Applet运行正常
         import java.awt.*;
import java.applet.*;

public class Applet1 extends Applet
{
public void init()
{

setLayout(null);
setSize(426,266);
button1.setLabel("draw");
add(button1);
button1.setBackground(java.awt.Color.lightGray);
button1.setBounds(252,48,112,47);

SymAction lSymAction = new SymAction();
button1.addActionListener(lSymAction);

}


java.awt.Button button1 = new java.awt.Button();


class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == button1)
button1_ActionPerformed(event);
}
}

void button1_ActionPerformed(java.awt.event.ActionEvent event)
{
repaint();
 
}
public void paint(Graphics g){
    g.drawRect(20, 20, 100, 100);
}
}
//


以下JApplet运行正常
import java.awt.*;
import javax.swing.*;

/**
 * A basic extension of the javax.swing.JApplet class
 */
public class JApplet1 extends JApplet
{
public void init()
{

getContentPane().setLayout(null);
setSize(426,266);
JButton1.setText("draw");
getContentPane().add(JButton1);
JButton1.setBounds(300,108,71,46);
//}}

//{{REGISTER_LISTENERS
SymAction lSymAction = new SymAction();
JButton1.addActionListener(lSymAction);
//}}
}

//{{DECLARE_CONTROLS
javax.swing.JButton JButton1 = new javax.swing.JButton();
//}}

class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == JButton1)
JButton1_actionPerformed(event);
}
}

void JButton1_actionPerformed(java.awt.event.ActionEvent event)
{
repaint();
 
}
public void paint(Graphics g){
    super.paint(g);
    g.drawRect(20, 20, 100, 100);
}
}

|
repaint()方法会执行:update()方法,先刷新屏幕(以背景填充),在调用
paint()方法重画。
一般可以重载update()和paint()方法。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt类container的类成员方法: paint定义及介绍
  • Java Applet的paint问题 在线
  • java命名空间java.awt类canvas的类成员方法: paint定义及介绍
  • paint () and Paintcomponent()
  • java命名空间java.awt.event类paintevent的类成员方法: paint定义及介绍
  • 关于paint方法的问题???请大家都看看
  • java命名空间javax.swing类cellrendererpane的类成员方法: paint定义及介绍
  • 在什么情况下重载paint()或paintComponent(),我不知道怎么办?
  • java命名空间javax.swing.text接口highlighter的类成员方法: paint定义及介绍
  • Graphics and paint(Graphics g) 问题????
  • java命名空间javax.swing.text接口caret的类成员方法: paint定义及介绍
  • 画图工具 Gnome-paint
  • java命名空间javax.swing.tree类defaulttreecelleditor.editorcontainer的类成员方法: paint定义及介绍
  • 绘图程序 Tux Paint
  • java命名空间javax.swing.text类glyphview的类成员方法: paint定义及介绍
  • 请教: 关于paint(Graphics g).
  • java命名空间javax.swing.text类componentview的类成员方法: paint定义及介绍
  • HTML5-Paint-Bucket-Tool
  • java命名空间javax.swing.text类glyphview.glyphpainter的类成员方法: paint定义及介绍
  • 为什么用paint()时上次的东西不擦除
  • java命名空间javax.swing.plaf.basic类basictoolbarui.dragwindow的类成员方法: paint定义及介绍
  • public void paint(Graphics g)该语句对吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3