在JPanel上画图时为何paint()方法会被多次调用? [问题点数:200分,结帖人tripofdream]

Bbs5
本版专家分:2605
Blank
黄花 2001年8月 Web 开发大版内专家分月排行榜第二
结帖率 100%
Bbs3
本版专家分:992
JAVA图形编程Swing之——JPanel绘图
JAVA图形编程Swing之——JPanel
Java用JFrame、JPanel、Graphics绘图案例讲解
本文将介绍Java绘图工具的使用,通过具体示例,演示通过Java的Graphics类在JFrame中的JPanel上绘制图形的步骤和<em>方法</em>。 JFrame类,是存放组件的容器。相当于相框。 JPanel类,是面板容器类。相当于画板。 Graphics类,是Java用绘图类,相当于画笔。
JPanel上画图
JPanel jp_background = new JPanel() { public void <em>paint</em>(Graphics g) { ImageIcon img = new ImageIcon(&quot;soldier/金描.png&quot;); ...
Swing编程方面步骤之三JFrame、JPanel、paintpaintComponent的区别
参考一 关于JFrame和JPanel问题
Java JPanel继承重写paint方法,无法清除原内容
根据android sdk中的snake sample来写一个swing版本。 想写一个snake程序,因为手上有一个Snake程序了,是Android版本的,最近想学习一下Android编程,所以下载了它的SDK,正好有一个Snake的Sample。可是没有想到Android程序和Swing程序的差别有这么的大。总的来说,我还是一个新手,在编程方面落后太多了啊。 用一个类继承JPanel来作
Java 不调用paint()方法进行绘图有感
java绘图经常用的就是重写<em>paint</em>()<em>方法</em>获得graphics对象进行绘图的。如何不<em>调用</em><em>paint</em>()<em>方法</em>从而在面板上绘图呢?Graphics2D g2d = (Graphics2D)getGraphics();可以直接获取到Graphics2D的对象进行<em>画图</em>,当然理论上是这样的,但实际上当draw了一个图形后,结果面板上却没有显示!遍寻各大论坛贴吧...
java中paint,repaint,update之间的关系(闪烁问题的解决)
最近总结了一下java中的<em>paint</em>,re<em>paint</em>和updata三者之间的关系,首先咱们都知道用<em>paint</em><em>方法</em>来绘图,用re<em>paint</em>重绘,用update来写双缓冲。但是他们之间是怎么来<em>调用</em>的呢,咱们来分析一下(想直接看结果,请跳过分析过程): -------------------------------------------------------------------------
JPanel repaint不清除之前图案的问题
最近OO作业要写电梯。。。 我负责写演示动画,好久没碰java了,手生啊。 我先想试试用JPanel实现一个简单的动画效果。  import javax.swing.*;import java.awt.*;import java.awt.event.*;class mypanel extends JPanel { public int x1, x2, x
JPanel重画方法
infoPanel.revalidate(); //重画<em>方法</em>,对infoPanel进行刷新
java画图总结之二(常用类Graphics,JFrame,JPanel)
二,常用类 Graphics,JFrame,JPanel     理清一下,<em>画图</em>要用的类,和之间的关系。
JFrame.paint(Graghics g) 方法重绘 窗口透明 解决方法
我们知道,Java中每次重绘都会<em>调用</em><em>paint</em><em>方法</em>。 public void <em>paint</em>(Graphics g) ...{    //super.<em>paint</em>(g);    Color c = g.getColor();    g.setColor(new Color(50,150,50));    g.fillOval(tankPos.x, tankPos.y, tankWid, tank
解决在eclipse中使用Graphics类中的方法paint无法使用,产生生成窗口被黑色背景覆盖问题
这个<em>方法</em>需要注意的地方不多,也就是重写时,先<em>调用</em> super.<em>paint</em>(g) <em>方法</em> <em>paint</em><em>方法</em>不需要编写代码<em>调用</em>,只需要重写。 其他看jdk帮助中就行了。 public void <em>paint</em>(Graphics g) { super.<em>paint</em>(g);// <em>调用</em>父类的<em>paint</em><em>方法</em>或<em>调用</em>下面的<em>方法</em>直接绘制组件 g.drawImage(image, 0, 0, null); g.setFont(...
Java 关于paintComponent与paint有什么区别?各自的特征
重点: 1 - <em>paint</em>() 中<em>调用</em> <em>paint</em>Component(), <em>paint</em>Border(), <em>paint</em>Children() 2 - 最重要的区别是“双缓冲”。Swing 组件的 <em>paint</em>() 中实现了双缓冲,所以不要随便去覆写,会破坏双缓冲的,————建议的方式是覆写 <em>paint</em>Component(),很多人做的小程序会”闪烁“,就是因为他们覆写了 <em>paint</em>() <em>方法</em>
Java学习笔记(五):在JFrame中用Graphics类实现画板
一、画板功能 二、初步实现
Java swing 绘图闪烁问题
最近在同一个Jpanel中绘制多个图像的时候会出现闪烁问题,事实上闪烁的原因是因为
java新手,用repaint方法重新绘图
最近在学习<em>paint</em><em>方法</em>的使用,想着用一个按钮来改变背景图片(就像我们平时做的那样),然后各方查资料。当然,资料是查不到多少的,因为百度首页的前几页的那几个博客,除了一个原创之外(虽然写的很晦涩难懂),其他的都是滥竽充数之徒!最让我恼火的是百度知道里面的登徒子,一个个为了点点积分而胡乱回答,真不知道那几位问问题的同路那个时候想法。     所以我决定把我自己的re<em>paint</em>代码贴上,因为我冥思苦
调用repaint()后为什么这个paintComponent()没有执行
其实,这个问题很简单,很容易被忽视 100%因为你的这Jpanel没有被放到一个JFrame中去显示而导致的。还在等什么,赶快ADD上。
JPanel加载背景图片
原理:我们直接在最上层容器内重写<em>paint</em>Component(Graphics g)<em>方法</em>在容器中画一张图 片。(这种<em>方法</em>很直观,原理很简单) 具体步骤:  只需要在构造JPanel时重写<em>paint</em>Component(Graphics g)就ok了。  class PanelTest extends JPanel{   ImageIcon background = new ImageIcon
利用java 刷新机制用于动态的画图
package com.tan; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.s
《JFrame类中paint()方法的重绘》
我在学习界面的时候,对这些总是很模糊,现在好多了
paint canvas绘图使用方法
canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap)
在java的jpanel绘制图形
在java的<em>jpanel</em>绘制图形 使用<em>paint</em><em>方法</em>,在里面使用super.<em>paint</em>清除之前的残留 在while里使用re<em>paint</em>进行循环绘画 public void display() { this.re<em>paint</em>(); } public void <em>paint</em>(Graphics g) { super.<em>paint</em>(g); dao.drawBackground(g); dao...
Java:Jpanel 缓冲区 图像
这是一个非常常用的东西 主要是重写JPanel中的<em>paint</em>(Graphics g)<em>方法</em>实现的。 0 写一个类继承JPanel public class WSModePlane extends JPanel 1 获取缓冲区 首先需要获得JPanel的缓冲区,这样才能在JPanel中<em>画图</em>: bfimage = (BufferedImage) this.createImage(
贪吃蛇系列一:Java用JFrame、JPanel、Graphics绘图案例讲解
import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class test { public static void main(String[] args) { // TODO Auto-generated method stub // 创建相框 ...
如何判断用paint画出的图形的坐标是在哪里?
import java.awt.*; import javax.swing.*; public class Test { public static void main(String args[]) { new Test().go();     } public void go() {    Ball ball = new Ball();        
使用paint画图应加上super.paint(g)
<em>paint</em>(g)函数会重绘图像,要加上super.<em>paint</em>(g),表示在原来图像的基础上,再<em>画图</em>。如果不加super.<em>paint</em>(g),重绘时,会将原有的绘制清空,再根据paing(g)函数绘制。 如下代码: package aa; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; imp
java画图板之二——重绘直线(paint方法
在我们的第一个简易<em>画图</em>板中,使用了两个类DrawFrame和FrawListener,但是有一个很大的问题,不能保存!当我们扩大或缩小<em>画图</em>板的大小时,之前的一起都没了。 原因在于,当我们改变<em>画图</em>板的时候,其实是将他重新画了一遍,而不是改变原来的大小,所以原来的自然就被重画的窗体给覆盖了,所以我们也需要重画一遍之前画的 而要重画之前画的,比如我们画了两条直线,要想把两条直线重画出来,需要先保存他...
JPanel无法显示问题
有两个Panel:Panel1,Panel2,Panel1
Java JPanel的getSize()方法 有时候得到的结果为0 的原因(涉及语句顺序、paint方法调用
代码执行顺序 <em>paint</em><em>方法</em>的<em>调用</em>时机
JAVA 基本绘图——利用JFrame JPanel 绘制扇形
利用JFrame制作幕布(容器),创建JPanel部件,将JPanel部件添加到JFrame容器中,利用了基本的java绘制图形<em>方法</em>,步骤也是基本的套路。 利用了API   ———   fillArc()   fillArc()<em>方法</em>定义如下: public abstract void fillArc(int x, int y, int width, int height, int start
java Applet绘图(涉及双缓冲)
准备学习java2游戏编程。(其实这是一本书啦) 然后作为基础的基础的基础,必须学习如何让键盘与界面进行交互。下面就是对一个基础得不能再基础的applet程序。 虽然这是个小程序,但其中关于双缓冲概念的介绍是很重要的,要深入理解。(高级噢) 首先先看代码: package bear.game.keyevent; import java.applet.Applet; import java
一个关于paintComponent的小细节问题
import java.awt.*; import javax.swing.*; public class TestPolyline extends JFrame { public TestPolyline() { add(new PolylinePanel()); } public static void main(String[] args) {
Frame中的paint什么时候调用
<em>paint</em>会在<em>调用</em>setVisible(true);之后<em>调用</em> <em>paint</em>是container中的<em>方法</em>,Frame继承container 这里还有一个小问题,图中可见两个打印位置,我用eclipse运行程序,首先打印“hh”然后是“<em>paint</em> run”,但我打断点调试,会先运行“<em>paint</em> run”,为什么呢,有没有知道的,谢谢
JAVA重写paint画图
package demo; import java.awt.*; import java.awt.event.*; public class FrameTest { public static void main(String[] args) { new MyFr
Java paint()个人理解
  这些天给同学讲了不少次JUI的 <em>paint</em>()<em>方法</em>和画笔,就目前而言已经比当初自己写的时候理解的多了不少了,虽然有点花时间,但好处还是有的。(习惯把Graphics g对象叫做画笔)   以前想要在某个容器上用画笔绘制东西来做游戏,直接给主类继承JPanel,然后只是把<em>paint</em>()+re<em>paint</em>()当作线程来使,感觉就这么背下来了。然后当我再看这个<em>paint</em><em>方法</em>的时候,隐约记得有个<em>方法</em>叫做...
java 中paint()和repaint()
一直对这个相当困惑,打算把从网上各个地方看到的整理一下: 1.
java画图总结之三(常用方法paint,repaint,update)
三,常用<em>方法</em><em>paint</em>,re<em>paint</em>,update 这个问题的由来是因为,我在编写java小程序,<em>画图</em>的时候,发现我重写了<em>paint</em>(graphics g)<em>方法</em>,而执行的时候<em>调用</em>的是re<em>paint</em>()无参<em>方法</em>。老师说,re<em>paint</em>里面间接<em>调用</em>了<em>paint</em><em>方法</em>。但是是如何间接<em>调用</em>的呢?re<em>paint</em><em>方法</em>里面是否new了一个graphics对象呢然后传给<em>paint</em>呢? 首先<em>paint</em><em>方法</em>,并不
图像化界面paint,repaint方法的总结
JAVA <em>画图</em>中出现的<em>paint</em>()函数 问题:小弟刚学JAVA,有一个问题。以下是一段JAVA代码,它弹出了一个窗口,并在窗口上使用<em>paint</em>()画出矩形、椭圆、扇面等图形。但鉴于<em>paint</em>()并不在main()中执行,所以它会一次画完。现在我想让<em>画图</em>行为受用户控制,比如说,开始只有一个空白窗口。当用户输入1,画出矩形。用户输入2,擦掉矩形。用户输入3,画出椭圆。等等等等。 所以小弟应该如何做?...
Java中使用paint方法绘图
每个Component都有一个<em>paint</em>(Graphics g)用于实现绘图目的,每次重画该Component时都自动<em>调用</em><em>paint</em><em>方法</em>。Graphics类中提供了很多绘图<em>方法</em>,如:  drawRect(int x,int y,int width,int height)   fillRoundRect(int x,int y,int width,int height,int arcWidth,in
Java在JPanel中自由绘图,并将绘图保存为jpg文件
在JPanel中绘图,并利用ImageIO将JPanel保存为图片时,往往只保存一个空白的JPanel,用户所绘制的图形往往不能正确保存,查了很多资料说是要<em>调用</em><em>paint</em>Component<em>方法</em>而不是<em>paint</em><em>方法</em>,但是这里强调的事自由绘图,而不是画好图然后呈现出来。 下面一小段程序是将一个Jpanel保存为图片的正常思路,但在自由绘图时,这个程序只保存一个空白的JPanel。 @Overrid
paintComponent方法的一些小把戏
在做作业的时候,遇到这样一道题目。 创建一个名为RegularPolygonPanel的子类,来绘制一个n条边的正多边形,多边形放在面板的中心位置,大小和面板的大小成比例。从RegularPolygonPanel创建一个五边形,一个六边形,一个七边形,一个八边形,一个九边形和一个十边形,然后在框架中显示他们。 起初,我的RegularPolygonPanel写成如下形式:     class...
bindservice
<em>多次</em><em>调用</em>bindService()<em>方法</em>并不会导致<em>多次</em>创建服务及绑定(也就是说onCreate()和onBind()<em>方法</em>并不<em>会被</em><em>多次</em><em>调用</em>,但是<em>多次</em>执行bindService)
paintEvent()的使用和触发
void ImgLabel::<em>paint</em>Event ( QPaintEvent *e ) { QPainter <em>paint</em>er(this); <em>paint</em>er.save(); QRect rect = this->geometry(); <em>paint</em>er.fillRect(QRect(QPoint(0,0),QSize(rect.width(),rect.height())),QBr
基于JPanel以及鼠标监听的Java 画图程序
基于Java 的<em>画图</em>程序,解压后直接打开工程,可以画出直线,园,线,点。需要其它图形可以自己设计,需要继承shape类;IDE环境为JCreator 4.5和JDK 1.5;
WinForm点击按钮在对应的panel里画图
  panel在form1里,button在form1上方,panel在下面。   主要是在button1的click时间获取panel的画笔。   下面的不行,在panel里获取画笔,然后传到button1,根本不行,因为程序的逻辑是,先点击button1加载数据,关键是怎么<em>调用</em>panel1_Paint<em>方法</em>,不知道如何<em>调用</em>,那就没办法同时获取panel的画笔,同理,因为此时在panel1化数...
C#-gdi绘图,双缓冲绘图,Paint事件的触发---ShinePans
在使用gdi技术绘图时,有时会发现
bufferimage中的图像怎么绘制在jpanel中那
JFileChooser chooser = new JFileChooser("."); if (chooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) {     BufferedImage image = ImageIO.read(chooser.getSelectedFile());
Java JFrame中使用双缓冲解决paint方法闪烁问题
刚接触Java时,使用了Java中的awt.Applet实现了迷宫小游戏,遇到闪烁问题并利用双缓冲技术解决了。但是最近实验中又遇到了这个问题,不过这次是swing.JFrame类了,基本思想都一样,但是解决方式却不太相同。这次是要在<em>paint</em><em>方法</em>中添加双缓冲技术。@Override public void <em>paint</em>(Graphics g) { if (iBuffer == null)...
Swing JPanel 设置画布背景及自己绘图
Swing JPanel 设置画布背景及自己绘图
matplotlib.pylot绘图显示两次问题
从昨天晚上开始<em>调用</em>plt.imshow(image)和plt.show()运行的时候会发现会绘两次,有些不可思议,没有循环也没套用怎么会出现两次的情况,然后检查代码没有发现问题,最后检查了一下import 模块,看到我引用了keras了,但没<em>调用</em>,随手把keras模块去掉后居然绘图正常了,不过现在还是没有弄清楚<em>为何</em>引入keras会影响到绘图呢。
Java画图时产生图片翻转
Java<em>画图</em>时,若使用苹果类型的手机拍摄的照片,<em>画图</em>产生翻转解决如下: // https://mvnrepository.com/artifact/net.coobird/thumbnailator compile group: 'net.coobird', name: 'thumbnailator', version: '0.4.8' // https://mvnrepository.com...
变量静态声明是否会被执行多次(static)
变量静态声明是否<em>会被</em>执行<em>多次</em>(static) 如下部分,是一个函数的一部分,当这个函数被执行<em>多次</em>,声明部分,是否<em>会被</em><em>多次</em>执行呢? static char sep = ' '; static int num = 0; printf("this is %2d:sep=%2c----string=%8s\r\n",num,sep,string); sep = ',
使用画笔(Paint)实现圆形动态进度条
实现效果: &amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;实现代码:&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span style=&quot;white-space:pre&quot;&amp;gt;&amp;lt;/span&amp;gt;创建两个画笔,一支使黑色的笔,一个是白色的笔&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&a
java 中如何利用Graphics类绘图
 关于Graphics类的一个结论:Graphics类是所有图形上下文(Graphic context)的抽象基类,因此它是不能直接实例化的,那么为了使用Graphics类绘图,就必须创建其非抽象的子类。那么我们又如何在这个子类中实现Graphics类(Graphics中定义了很多抽象<em>方法</em>)中的抽象<em>方法</em>呢?要用这些<em>方法</em>来实现在特定的组件及设备上绘图,而又不能用Graphics类(因为它无法被实例化
android之针对fragment多次调用onCreateView的问题
直接上代码: private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (null != rootView) { ViewGroup p
绘制线程 PaintThread
PaintThread.java package org.bruce.locator.gui; import javax.swing.JComponent; /** * @author Bruce Yang * 面板绘制线程~ */ class PaintThread implements Runnable { // 每秒绘制 50 帧~ public static final
如何用Paint实现文字居中?
需要用到 <em>paint</em>.getTextBounds(String.valueOf(num), 0, String.valueOf(num).length(), textBound); 和<em>paint</em>.measureText(String.valueOf(num))这两个函数,其中measureText测量宽,而getTextBounds测量高度。 具体实现: float x = (ge
JAVA球的实例
简单的java 球的类的<em>方法</em> 主要<em>方法</em>: (1)init()<em>方法</em>:创建applet后第一个要<em>调用</em>的<em>方法</em> (2)start()<em>方法</em>: 在init()<em>方法</em>之后要<em>调用</em>的一个<em>方法</em> (3)stop()<em>方法</em>:用户关闭或者离开页面时才<em>调用</em>的<em>方法</em> (4)<em>paint</em>()<em>方法</em>:<em>画图</em> public void <em>paint</em>(Graphics g){.....}
java基础学习总结——关于Java中的paint,repaint,update三个方法的关系
这些天一直在用re<em>paint</em>()和<em>paint</em>(),到网上一查,还揪出了update(), 其中查到一篇介绍Java中的<em>paint</em>,re<em>paint</em>,update三个<em>方法</em>的关系的文章: 1.  先还是看看 Java API 中的介绍吧:update public void update(Graphics g)     更新组件。     如果此组件不是轻量级组件,则为了响应对 re<em>paint</em> 
java中paint()的具体用法(说具体点 一起重写之后的问题 还有有关调用问题)
这个<em>方法</em>需要注意的地方不多,也就是重写时,先<em>调用</em> super.<em>paint</em>(g) <em>方法</em><em>paint</em><em>方法</em>不需要编写代码<em>调用</em>,只需要重写。其他看jdk帮助中就行了。public void <em>paint</em>(Graphics g) { super.<em>paint</em>(g);// <em>调用</em>父类的<em>paint</em><em>方法</em>或<em>调用</em>下面的<em>方法</em>直接绘制组件 g.drawImage(image, 0, 0, null);
C# 图形显示Onpaint
C#里面有一个On<em>paint</em>本来我以为是每一段时间刷新一次,但是不是的,这个事件好像只有界面重写的时候才会<em>调用</em>这个事件,所以需要修改显示的图像信息,通过这个事件就不能直接修改显示信息,必须触发重写事件才能刷新我要显示的图像。1、对Paint事件编程,首先根据Paint事件参数获取无效区域,然后在无效区域中按要求绘制就可以了。无效区域是整个图形的一个部分,一般来说不可能对整个图形进行绘制,而是绘制其
C#画图解决闪烁问题
导致画面闪烁的关键原因分析:       一、绘制窗口由于大小位置状态改变进行重绘操作时      绘图窗口内容或大小每改变一次,都要<em>调用</em>Paint事件进行重绘操作,该操作会使画面重新刷新一次以维持窗口正常显示。刷新过程中会导致所有图元重新绘制,而各个图元的重绘操作并不会导致Paint事件发生,因此窗口的每一次刷新只会<em>调用</em>Paint事件一次。窗口刷新一次的过程中,每一个图元的重绘都会立即显示到
Java GUI中repaint方法延时问题
在上课做的题目里, 做出了一个迷宫, 在迷宫里有两只老鼠, 现在希望每1秒老鼠移动一次在迷宫中的位置, 我的想法最初是, <em>调用</em>re<em>paint</em>函数和Thread.sleep(1000)实现每秒重绘移动一次位置, 代码大概这样: for(int i=0;i&amp;amp;lt;10;i++){ mouse.move(); try { Thread.sleep(100); } catch(Int...
Android开发中三个绘图工具(Paint,Canvas,Path)的基本用法(总结)
Canvas(画布),Paint(画笔),Path(路径)。这三个是常用的绘图工具,是自定义View的基本。效果图如下:自定义View的代码如下:package com.deepreality.canvasand<em>paint</em>andpath; import android.content.Context; import android.graphics.BitmapFactory; import a...
Android 自定义控件-Canvas和Paint绘图详解-手把手带你绘制一个时钟.
1,Android - Paint基础在自定义控件时,经常需要使用canvas、<em>paint</em>等,在canvas类中,绘画基本都是靠drawXXX()<em>方法</em>来完成的,在这些<em>方法</em>中,很多时候都需要用到<em>paint</em>类型的参数, Paint作为一个非常重要的元素,功能也是非常强大的,这里简单列举一些它的属性和对应的功能. setAntiAlias() //设置画笔的锯齿效果 setColor()
用Windows 10自带的paint/画图 软件删除图片中的文字,并且添加新文字,适合学术应用,有截图
<em>方法</em>很简单,几步就搞定 目标:删除特定英文字符,添加汉语字符 1 1 打开<em>画图</em>,主页,矩形 2 覆盖想要删除的文字 3 右击,选择,轮廓,无轮廓线 4 右击,选择,填充,纯色 5 文字被删除了 删除文字的另外一种快捷<em>方法</em> 1 主页,选择,矩形选择 2 右击,删除,可以删除所有的文字 添加文字的<em>方法</em>: 主页,找字母A,写字吧...
C#在Panel上画图
所有控件(Control类的派生类)都有CreateGraphics<em>方法</em>提供画板,所以你可以://假设panel1是将直线盖住的控件private void Form1_Paint(object sender, PaintEventArgs e){e.Graphics.Clear(BackColor);panel1.CreateGraphics().Clear(panel1.BackColor);
JPanel的paint方法
如果我的类继承了JPanel,并且覆盖了<em>paint</em><em>方法</em>,但同时JPanel里还添加了一个button,那么button能不能使用?
c#代码时钟
学习C#时写的时钟代码,里面用到<em>画图</em>类的另一种生声明<em>方法</em>,可以不用带<em>paint</em><em>方法</em>
Android:视图绘制(一) ------基本的绘图操作Paint和Canvas
大家都知道Android的UI很强大,各种系统控件和自定义控件,实现了很多绚丽的效果。而这些都离不开我们这篇文章讲到的Paint和Canvas。 Android提供了Canvas(画布)和Paint(画笔)用来实现视图的绘制工作。之所以把Paint和Canvas放到一起讲,是因为这两个东西本身就是一体的,只有在一起才能画出各种图形。作为画笔来讲,Paint可以设置各种属性,来达到画出不同线条的作用。
求助Java 为什么 public void paint(Graphics g)方法画不出来 无法画出来定义的图形 求大神解析
package cn.hao.Util; import java.awt.*; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; cl...
Tomcat中ServletContextListener监听器重复执行的问题
问题的原因是,将项目的war包放在webapps目录下后,Tomcat启动时会解压并部署。我在Tomcat的server.xml中配置了虚拟目录,让用户输入网站域名可以直接访问。这样就在Tomcat下启动了两个项目系统,虽然用户只用其中一个系统,但两个系统中的ServletContextListener的定时器都会执行。所以只需要将项目放到其他目录,只要不在webapps目录下就行。经测试,问题...
MFC OnPaint中控件绘图,覆盖重叠的控件
对话框上又两个控件,一个static控件SS_BITMAP属性,用来绘图(canvas),一个static控件SS_BITMAP属性,用来显示图片(tool),tool和canvas有重叠部分,为了使canvas在刷新后不至于消失,我在OnPaint中采用双缓冲绘图方式刷新内容。可以刷新之后,tool与canvas重叠的部分变成canvas被覆盖的内容了,tool缺了一块。 创建tool的时候指...
设置jpanel图片方法
package com.lzw.login; import java.awt.*; import java.net.URL; import javax.swing.*; import java.awt.Dimension; public class LoginPanel extends JPanel { public int width, height; private Image i
LINUX下类似画图板Paint的工具
  有时候简单处理一下图片,没有真不方便。 sudo apt-get install kolour<em>paint</em>4   安装完成后,点击左上的搜索,输入<em>paint</em>,就可以使用了。如果经常使用,启动后可以将其锁定在左侧栏上。...
JQuery给元素绑定click事件多次执行的解决方法
原绑定<em>方法</em>:  代码如下: $("#sdfsd").on("mouseout",function(e){ ***** });  这种<em>方法</em>只会在原click<em>方法</em>中继续添加新<em>方法</em>;  解决办法更改绑定<em>方法</em>为:  代码如下: $("#sdfsd").unbind("click").click(function(e){ ***** });  在绑定新cli
U3D安卓下OnApplicationQuit不执行的解决方法
安卓下当你按Home键,程序会进入暂停状态。所以只能改成<em>调用</em>OnApplicationPause。 Unity论坛上说实现IDispose接口也可以,似乎IOS可以,但安卓测试了,无效。...
Android 自定义View之绘图工具类Canvas+Paint+Path(onDraw方法)基础详解
本章节讲述三个绘图工具类Canvas(画布),Paint(画笔),Path(路径)   1.Canvas(画布)相关<em>方法</em>详解   1.1. <em>方法</em>:Canvas() 作用:创建一个空的画布,可以使用setBitmap()<em>方法</em>来设置绘制具体的画布。(构造<em>方法</em>)。   1.2. <em>方法</em>:Canvas(Bitmap bitmap): 作用:以bitmap对象创建一个画布,将内容都绘制在...
Android自定义控件:绘图基础Canvas、Paint类
概述:    Android的绘图应该继承View组件,并重写它的onDraw(Canvas canvas)类,这里的Canvas类就是一个“依附”于指定View的画布;有画布,相对也有一个画笔Paint,这个类用于绘制图形 一、Paint与Canvas 所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明度,字体的样式等等,都是在Paint里设置;同样,凡是要画出成
java多态中向上转化类型不能调用子类的变量
java多态中向上转化类型之后,虽然说可以<em>调用</em>子类和父类的<em>方法</em>,但是不能<em>调用</em>子类中的变量。会显示没有变量。 代码截图如下,便于理解: 错误提示为:
swing 中重写repaint方法画图会出现闪烁或者不及时更新的解决方法
1:往上流传的是双缓冲区的解法,但是这样会对内存照成浪费,并且如果在分布式应用中采用此<em>方法</em>,后果是很严重的2:究其原因,是我们在re<em>paint</em>触发时,没有将当前绘制的图形进行显示import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.event.MouseAdapt
wxPython: 简单的绘图例子
一个绘图的例子: #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Function:绘图 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-11 ''' im
关于JPanel的使用
随时随地阅读更多技术实战干货,充分利用闲暇时间,请关注源代码社区公众号(ydmsq666)和技术交流群。   package com; import java.awt.Color; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.s...
canvas、bitmap、paint之间是什么关系
官方文档翻译过来的解释: 要绘图,需要4个基本组件: Bitmap 保存像素的容器Canvas 执行绘图命令的宿主Rect/Path/text/Bitmap 要绘制的元素Paint 用什么样的方式绘制 android的canvas绘图,基于skia,想要了解canvas的绘图过程,需要对canvas和skia的源码有所了解。 查看Canvas源码,发现Canvas与Bitmap类似,都
Android 源码分析问题(二)—— onMeasure() 方法多次调用的原因
问题引入 某些时候 onMeasure() <em>会被</em><em>调用</em>两次,这个问题让我比较困扰,这里我找到了相关源码来解释这个问题。 本文只针对该问题,暂不对其它涉及到的内容分析。 测量的开始 对于 Activity 中 view 的测量,布局,绘制三个过程大部分人都已经比较熟悉了,这里我们直接从一个 Activity 如何开始这三个过程开始找到问题。 第一次测量在什么时...
关于view的drawRect多次调用出现绘图重叠问题
如用纯代码书写如果<em>多次</em><em>调用</em>setNeedsDisplay出现绘图重叠现象. 解决办法:初始化时设置背景色. -(instancetype)initWithFrame:(CGRect)frame {     self = [super initWithFrame:frame];     if (self)     {        self.backgroundColor =
使用Java实现双缓冲绘图
使用Java实现双缓冲绘图当我们使用AWT或Swing绘图时,如果绘制的图像刷新太快,会出现屏闪现象,如之前写的俄罗斯方块小游戏,屏闪现象就很明显。虽然这种闪烁不会给程序的效果造成太大的影响,但给程序的使用者造成了些许不便,针对这种现象,我们大都是采取双缓冲的方式来解决的。双缓冲是计算机动画处理中的传统技术,在用其他语言编程时也可以实现。导致屏闪的原因拿上一篇文章中的俄罗斯方块来说明。当创建窗体对象
画图"没了!然而你真的会用吗?">小时候常用的Windows"画图"没了!然而你真的会用吗?
点击上方“中兴开发者社区”,关注我们 每天读一篇一线开发者原创好文 微软<em>画图</em>软件Paint,是很多人用电脑绘图的“第一次” 不过新闻说:这个已有32年历史的Windows内置软件,将不再被预安装,也不会有后续版本了! 和一般的商业<em>画图</em>软件相比,Paint并不容易用,常人...大概也就能弄出这么个水平: 不过对于擅
初学Android,图形图像之使用Canvas,Paint绘图(二十五
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 下面是一个画各种图形的
JAVA用画板JFrame画布JPanel画笔Graphics画漫天不停的跑的星星-1
JAVA画满天星,并有动画效果
Service生命周期调用
##01_start开启服务的生命周期(重点)     1.开启服务时<em>调用</em>的生命周期的<em>方法</em>:onCreate,onStartCommand;     2.停止服务时<em>调用</em>的生命周期的<em>方法</em>:onDestroy;     没有onResume,onPause,onStop,onRestart<em>方法</em>,因为服务没有界面;      ##02_bind方式开启服务的生命周期(重点) 特点
C#调用matlab画图,解决图像嵌入Winform窗体和只能嵌入一次的问题
C#<em>调用</em>matlab<em>画图</em>,解决图像嵌入Winform窗体和只能嵌入一次的问题 VS版本是2015注意兼容性问题 博客:https://blog.csdn.net/voidfaceless/article/details/84844713
Java绘图原理(一) Graphics的各种。。
功能:Java绘图原理  * Component提供了两个和绘图相关的重要<em>方法</em>  * 1. <em>paint</em>(Graphics g)绘制组件的外观  * 2.re<em>paint</em>刷新组建的外观  * 二、  * 在以下情况<em>paint</em>()<em>会被</em><em>调用</em>  * 1.窗口最小化再最大化  * 2.窗口的大小发生变化  * 3.re<em>paint</em>函数被<em>调用</em> Graphics 类是所有图形上下文的抽象基类,允许
Android绘图篇-01 Canvas和Paint的基础使用
一Paint和Canvas Paint设置填充样式 文字添加阴影 给Canvas设置背景色 画直线 画点 画矩形 圆角矩形 圆形 椭圆 弧 二Path和DrawTetx练习 Path直线 Path矩形 Path圆角矩形 其他Path图形 Paint关于文字属性的设置 文字对应canvas绘制方式看到效果还是很基础的东西.下面开始整理实现<em>方法</em> 源码下载: 查找SuGraphicsBaseCa
java的JPanel面板刷新
当更换JPanel中的组件时,只使用remove()或removeAll()来去除旧组件则系统更新速度可能会非常慢,此时可用updateUI()来刷新,它的刷新速度会非常快的进行组件更换。
Android绘图机制与处理技巧(一)——Android绘图技巧
CanvasCanvas作为绘制图形的直接对象,提供了以下几个非常有用的<em>方法</em>。 canvas.save() canvas.restore() canvas.rotate() canvas.translate()
java Jpanel调用另一个Jpanel时的paint函数异常
想在java里面的一个<em>jpanel</em>里面<em>调用</em>另一个<em>jpanel</em>,发现这个第二个<em>jpanel</em>里面的<em>paint</em>函数有异常,是咋回事呢?rn[code=java]rnclass Packet extends JPanelrnrn private double s_x,s_y,e_x,e_y;rn private String s_ID;rn private Double move_time;rn private double a,b,c;rn private double receiver_sped;rn private double step;rn private int x,y;rn rn public Packet(int cs_x,int cs_y,int ce_x,int ce_y,double cmove_time,double creceiver_sped,String cs_ID)rn rn rn this.s_x=cs_x;rn this.s_y=cs_y;rn this.e_x=ce_x;rn this.e_y=ce_y;rn this.move_time=cmove_time;rn this.receiver_sped=creceiver_sped;rn this.s_ID=cs_ID;rn //System.out.println("SX:"+s_x+" "+"SY:"+s_y+" "+"EX:"+e_x+" "+"EY:"+e_y+" "+"Mtime:"+move_time+" "+"rsped:"+receiver_sped+" "+"ID:"+s_ID);rn rn getTarget();rn //System.out.println("Packet_public_2");rn // run();rn //System.out.println("Packet_public_3");rn rn rn rn rn public void getTarget() rn rn double x1 = this.s_x;rn double y1 = this.s_y;rn double x3 = e_x;rn double y3 = e_y-this.move_time*this.receiver_sped;rn a = (float) (y3 - y1) / (float) (x3 - x1);rn b = (float) (y3 * (x3 - x1) - x3 * (y3 - y1)) / (float) (x3 - x1);rn step = (x3 - x1)/(this.move_time);rn //System.out.println("ID:"+this.s_ID);rn //System.out.println("x1:"+x1+" "+"y1:"+y1+" "+"x3:"+x3+" "+"y3:"+y3+" "+"a:"+a+" "+"b:"+b+" "+"step:"+step);rn rn rnrnrn public void <em>paint</em>(Graphics g) rn rn super.<em>paint</em>(g);rn //System.out.println("run_x:"+x);rn x += 50;rn if(x>this.e_x)rn x=(int)this.s_x;rn y = (int) (a * x + b);rn if (y > this.e_y) rn //_z.isLive = false;rn rn rn System.out.println("ID:"+this.s_ID);rn //g.setColor(Color.BLUE);rn //g.fillRect(x, y, 20, 20);rn g.setColor(Color.RED);rn g.drawString(this.s_ID, x, y+20);rn //re<em>paint</em>();rn rn rnrn[/code]rn构造器里的ID和<em>paint</em>函数里的ID不同,
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
Altova.XMLSpy2008注册机下载
本注册支持 Altova.XMLSpy.Enterprise.v2008.1版本的注册,希望大家喜欢,和支持。 相关下载链接:[url=//download.csdn.net/download/ecjtuxuan/353818?utm_source=bbsseo]//download.csdn.net/download/ecjtuxuan/353818?utm_source=bbsseo[/url]
Tomcat配置集锦下载
Tomcat配置,Tomcat配置,Tomcat配置,Tomcat配置,Tomcat配置,Tomcat配置 相关下载链接:[url=//download.csdn.net/download/njgcxyzyf/2258200?utm_source=bbsseo]//download.csdn.net/download/njgcxyzyf/2258200?utm_source=bbsseo[/url]
Blender基础_界面操作03下载
关于Blender界面操作使用的一个视频。这是Blender入门的一个学习资料。 相关下载链接:[url=//download.csdn.net/download/haisc261/2613516?utm_source=bbsseo]//download.csdn.net/download/haisc261/2613516?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 为何要学习反射 python画图教程
我们是很有底线的