Tag: paint

javafx中的任意形状是否有“填充”function?

我需要知道使用JavaFX以哪种方式为下面的图像(PNG)着色。 此图像当前包含在JavaFX的ImageView中: 不同部分的图像http://sofzh.miximages.com/java/image_2.jpg 我想将区域1蓝色,第二个红色,最后两个紫色。 如何在JavaFX中执行此操作? 是不是在Windows Paint中有某种function? (你知道,填充某个区域的绘画桶,边框之间有颜色)。

JApplet – super.paint(); 导致闪烁

我现在正在写一个JApplet,每当我调用super.paint()时,applet都会闪烁。 我正在使用双缓冲(绘制到图像,然后渲染该图像),但我认为super.paint()正在清除屏幕或其他东西,击败我的双缓冲区。 我知道我应该使用paintComponents(),但出于某种原因,当我调用“currentScreen.Draw(g)”时,它不会显示屏幕的绘制。 谁能帮我这个? public void paint(Graphics g) { super.paint(g);//Remove this and it works, but the JApplet background color will be gone, and everything will be white. currentScreen.Draw(g); } 画面绘制方法 public void Draw(Graphics g) { if(buffer != null) g.drawImage(buffer, 150, 0, null); //g.drawString(drawstring, x, y); }

java applet中的paint()无故被调用两次

是否有一个共同的原因可以在不打算的情况下调用paint()方法两次。 我有以下代码: public void paint(Graphics g) { //Graphics2D gg; //gg=(Graphics2D) g; drawMatrix(g); } private void drawMatrix(Graphics g) { int side = 40; hex hexagon=new hex(); for(int i = 0; i<9; i++) for(int k = 0; k<9; k++){ g.setColor(Color.lightGray); g.fill3DRect(i*side,k*side, side, side, true); if (matrix[i][k]!=null){System.out.println("i is "+i+" k is "+k); g.setColor(Color.black);hexagon.DrawHexfromMatrix(g, i, k, Color.black);} } } […]

为什么不直接在JFrame中绘制

任何人都可以解释我为什么不应该使用paint方法直接在JFrame窗口内绘制,我应该使用paintComponent方法与JFrame内的JFrame ? 提前致谢。

为什么paint()/ paintComponent()从未调用过?

在过去的两天里,我试图了解 Java如何处理图形,但是在这方面却失败了。 我的主要问题是如何以及何时应该调用paint()(或更新的paintComponent())。 在下面的代码中我看到了什么时候创建的东西,paintComponent()从不被调用,除非我自己手动添加一个调用或者调用JFrame.paintAll()/ JFrame.paintComponents()。 我将paint()方法重命名为paintComponent(),希望能解决我永远不会被调用的问题(即使在repaint()),但没有运气。 package jpanelpaint; import java.awt.*; import javax.imageio.*; import javax.swing.*; import java.io.*; import java.util.ArrayList; public class ImageLoadTest extends JComponent { ArrayList list; public ImageLoadTest() { list = new ArrayList(); try { //create the images (a deck of 4 cards) for(String name : createImageFileNames(4)){ System.err.println(name); list.add(ImageIO.read(new File(name))); } } catch (IOException e) […]

如何使用键绑定在屏幕上移动矩形?

我正在尝试创建的游戏是蛇,到目前为止我已经想出如何使用paint(Graphics g)一点JPanel ,鼠标监听器,现在我正在尝试创建一个将在屏幕上移动的矩形使用键绑定或键侦听器,但我不知道我应该怎么做。 这是我的代码到目前为止,它有2个部分。 第一部分叫做snake2因为如果我不知道自己在做什么,我会用不同的东西制作相同的程序。 Snake使用框架,但Snake2使用JPanel (看起来更好……) import java.awt.*; //required for MouseListener import java.awt.event.*; //requied for Graohics import java.applet.*; import javax.swing.*; public class Snake2 extends JPanel { private Rectangle sampleObject; public Snake2() { addMouseListener(new MouseListener()); } /* create background */ public void paint (Graphics g) { Font angel = new Font(“Angelic War”, Font.BOLD, 60); Font […]

JLayeredPane和绘画

我正在编写一个应用程序,它有一个JLayeredPane(称之为图层),包含两个不同层的JPanel。 我覆盖了底部JPanel的paintComponent方法(称之为grid_panel),因此它绘制了一个网格,并在顶部绘制了一个paintComponent方法(称之为circuit_panel),因此它绘制了一个电路。 以下是结构摘要: layers – |-circuit_panel (on top) |-grid_panel (at bottom) 我希望grid_panel保持静态,即不进行任何重绘(除了初始的重绘),因为它不会改变。 麻烦的是, 每当我调用circuit_panel.repaint()时,grid_panel也会被重新绘制! 这绝对不是有效的。 我认为这是由于JLayeredPane的热切绘画行为。 有没有办法在JLayeredPane中禁用此function? 如果你有兴趣看到上述效果,我写了一个小的演示程序: public class Test2 extends JFrame { public Test2() { JLayeredPane layers = new JLayeredPane(); layers.setPreferredSize(new Dimension(600, 400)); MyPanel1 myPanel1 = new MyPanel1(); MyPanel2 myPanel2 = new MyPanel2(); myPanel1.setSize(600, 400); myPanel2.setSize(600, 400); myPanel1.setOpaque(false); myPanel2.setOpaque(false); myPanel2.addMouseListener(new MyMouseListener(myPanel2)); layers.add(myPanel1, new […]

MouseListener帮助Java

我正在尝试用Java Swing编写一个程序,它输出一个10 x 10网格的几何矩形,里面装满了randoms颜色。 但是,当用户单击显示窗口中的一个矩形时,矩形应重新绘制()并更改为另一种颜色。 到目前为止,我已经运行了基本程序,但我无法弄清楚如何为其实现mouseListener,以便在用户单击内部时更改矩形的颜色。 此时,矩形仅在显示窗口展开和最小化时重新绘制。 任何建议/帮助将不胜感激! 谢谢! 这是我到目前为止所拥有的…… import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.geom.*; public class ColorGrid extends JPanel { int w, x, y, z; Color c = new Color((int)(Math.random() * 0xFFFFFF)); public void paint(Graphics g){ Graphics2D g2 = (Graphics2D) g; setLayout(new GridLayout(10,10)); int w = x = y = z […]

paint()和paintcomponent()之间的区别?

我已经尝试了这方面的教程,但我仍然不太明白。 基本上我的问题是哪种方法更好,为什么? 我应该使用paint或paintComponent吗? 请尽量保持答案简单,谢谢。

绘制一个在下一个油漆中不会消失的矩形

我试图创建一个绘制矩形的JPanel。 小组需要绘制很多矩形,但它们不会移动。 我的问题的一个解决方案是创建一个包含我已经创建的所有矩形的列表,并在每次调用“Paint”时绘制它们。 但是有很多矩形,它会减慢计算机的速度。 我也尝试使用重绘(x,y,高度,宽度)来掠夺新矩形的空间,但它不起作用。 (JPanel不断擦除以前的矩形。)在排序中,我需要绘制每个油漆都不会消失的矩形。 或者是一种不会擦除先前绘制的绘画方法,或者不会绘制背景。 这是我的JPanel类的一部分: class MyPanel extends JPanel{ private int x, y, size; private Color c; public void DrawRect(int x, int y, int size, Color c){ this.x = x; this.y = y; this.size = size; this.c = c; repaint(); } @Override public void paint(Graphics g) { g.setColor(c); g.fillRect(x, y, size, size); […]