标签: repaint

WPF图像,改变像素的颜色

我有个问题.我需要在图像中填充(或重新绘制)一些像素,存储在Image控件中.这是一个png图像.我的意思是,所有黑色像素都应该填充例如红色.我怎样才能做到这一点?我以为我可以直接访问像素并使用XOR更改特殊位,但我不知道如何做到这一点.或者也许有一种更简单的方法?

wpf image pixels repaint

6
推荐指数
1
解决办法
3691
查看次数

在swing-java中,Graphics实例来自哪里?

当更新请求被传递到swing(系统触发,例如由于调整大小或由另一个窗口阻止,或者由app调用例如通过调用repaint()方法),该请求如何实际处理?在RepaintManager中发生了什么过程?

java swing repaint

6
推荐指数
1
解决办法
272
查看次数

当我重新粉刷时,停止在秋千上闪烁

我正在制作一个带有tilemap的RPG.为了生成tilemap,我循环通过一个二维数组,但这意味着当我重新绘制时,我必须每次都这样做.如果我重画太多屏幕闪烁,我怎么能阻止这个.

package sexyCyborgFromAnOtherDimension;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Game extends JPanel
{
    KeyLis listener;
    int mapX = 20;
    int mapY = 20;
    boolean up = false;
    boolean down = false;
    boolean right = false;
    boolean left = false;
    String[][] map;

    public Game()
    {
        super();
        try 
        {
            map = load("/maps/map1.txt");
        } 

        catch (IOException e) 
        {
            // TODO Auto-generated catch …
Run Code Online (Sandbox Code Playgroud)

java concurrency swing repaint event-dispatch-thread

6
推荐指数
1
解决办法
1万
查看次数

Android RatingBar绘画本身就错了

我需要强制重绘的的的RatingBar控制.

在评级栏和样式出现许多问题后,我设法让几乎所有工作都能正常工作.

我在listview项目中使用它.由于它是如何工作的,人们必须与它的外观和行为"战斗"一点.我最终使用了我在SO上找到的解决方案,其中一个设置它作为指示器,但是在自己手动计算评分栏上的点击对应的分数时.在浏览代码时代码总是产生正确的结果,但第一次控制绘画本身是错误的.这是我在getView "第一部分"中的代码:

  final RatingBar rating = (RatingBar)view.findViewById(R.id.listitem_catalog_rating);

  rating.setOnTouchListener(new OnTouchListener() {
    @Override

    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
             float touchPositionX = event.getX();
             float width = rating.getWidth();
             float starsf = (touchPositionX / width);
             starsf = starsf * param_final__data.score_max; // 5
             int starsint = (int) starsf + param_final__data.score_min;                                   
             byte starsbyte = (byte) starsint; 
             param_final__data.score_cur = starsbyte;
             starsf = starsint; 
             rating.setRating(starsf);
             rating.setVisibility(View.INVISIBLE);
             // force repaint and set …
Run Code Online (Sandbox Code Playgroud)

android listview repaint invalidation ratingbar

6
推荐指数
1
解决办法
1263
查看次数

在另一个类中调用Repaint()方法

repaint()我的Java代码中的方法有问题.我想在另一个中调用它,class但我不能,有些东西根本不起作用.我在论坛上搜索过,但没有任何东西可以帮助我.

我的主要 class:

public class Main {

public static Main main;
public static JFrame f;
public Main(){

}

public static void main(String[] args) {
    main = new Main();

    f = new JFrame();
    Ball b = new Ball();

    f.getContentPane().setBackground(Color.GRAY);

    f.add(b);
    f.setSize(500, 500);
    f.setLocationRelativeTo(null);
    f.setTitle("Test");
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.addMouseMotionListener(b);
    f.addKeyListener(new Key());


}
}
Run Code Online (Sandbox Code Playgroud)

class在我创建用于移动形状的2DGraphics的:

public class Ball extends JLabel implements MouseMotionListener{

public Ball(){

}

public static double x = 10;
public static double …
Run Code Online (Sandbox Code Playgroud)

java swing repaint paintcomponent

6
推荐指数
1
解决办法
565
查看次数

在C#中,如何将刷新/重绘消息发送到WPF网格或画布?

如何将刷新消息发送到WPF网格或画布?

换句话说,我注意到在调试模式下,我可以编写代码向显示器发送一行,然后,如果该行不正确,我可以调整它 - 但前一行仍然存在.现在,我正在编写的代码根据用户点击的内容向显示器发送信息.因此,这必须意味着每次一组新的行和框和文本转到WPF中的网格或画布时,不会刷新显示.

使用C#代码,如何将刷新/重绘消息发送到WPF网格或画布?

c# wpf grid repaint

5
推荐指数
1
解决办法
6237
查看次数

在JPanel的一部分中绘制而不重新绘制其余部分

我正在尝试用Java创建一个Mastermind.代码并不是很难,但我希望有一个非常好的界面.我有一个JPanel,它占用了我所有的JFrame,我使用surchargind repaint()方法绘制了这个JPanel :

public void paint(Graphics g) //méthode permettant de dessiner les éléments sur la carte
   {
   super.paintComponents(g);
   Graphics gr;
   gr = MasterMindPane.getGraphics();

   img = MasterMindPane.getToolkit().getImage("images/plateau4-8.jpg");
   gr.drawImage(img, 0, 0, 600, 720, this);

   gr = bouleRougePane.getGraphics();
   img = bouleRougePane.getToolkit().getImage("images/bouleRouge.png");
   //gr.drawImage(img, 535, 303, 45, 45, this);
   gr.drawImage(img, 0, 0, 45, 45, this);
   gr = bouleOrangePane.getGraphics();
   img = bouleOrangePane.getToolkit().getImage("images/bouleOrange.png");
   //gr.drawImage(img, 535, 303, 45, 45, this);
   gr.drawImage(img, 0, 0, 45, 45, this);
}
Run Code Online (Sandbox Code Playgroud)

当我点击一个有Panel的图像时,我画出一个黄色圆圈:

private void bouleRougePaneMouseClicked(java.awt.event.MouseEvent evt) {                                            
   Graphics2D g2d = (Graphics2D) …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel repaint

5
推荐指数
1
解决办法
3530
查看次数

repaint()无法工作

我想根据从另一个线程收到的数据在我的面板上绘制一个图像.我确信数据和随后的像素数组运行良好,但repaint()永远不会工作.谁能告诉我这里出了什么问题?

import javax.swing.*;
import java.awt.*;
import java.awt.image.*;

/** Create an image from a pixel array. **/
public class PicturePlaza extends JApplet
{
  ImagePanel fImagePanel;
  ReadCom   readComPort;
  Thread readPortThread;

  public void init () {
    // initiate the read port thread so that it can receive data
     readComPort = new ReadCom();
     readPortThread = new Thread(readComPort,"ReadCom");
     readPortThread.start();

     Container content_pane = getContentPane ();
     fImagePanel = new ImagePanel ();
     content_pane.add (fImagePanel);  

  } 

  // Tell the panel to create and display the image, if pixel data …
Run Code Online (Sandbox Code Playgroud)

java applet swing awt repaint

5
推荐指数
1
解决办法
432
查看次数

使用带有actionPerformed的repaint()方法

按下按钮时如何使用repaint()方法,Graphics p必须从头开始重新绘制所有内容?

谢谢.

  import javax.swing.Box;
  import javax.swing.JButton;
  import javax.swing.JTextField;
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;

  class fares extends JPanel{

    private static final long serialVersionUID = 1L;
    public static int xaxis1,xaxis2,yaxis3,yaxis4;

public ControlsB(square) {

    final JButton btn1 = new JButton("Resize");

    final Box b = Box.createHorizontalBox();
    b.add(new JLabel("Please enter range:  "));
    Box b0 = Box.createVerticalBox();//create a vertical box to stack the controls

    Box b1 = Box.createHorizontalBox(); // create a horizontal box for the x-axis

    //x-axis
    b1.add(new JLabel("mark "));
    b1.add(new JLabel("for"));

    f1.setMaximumSize(new Dimension(100,30)); …
Run Code Online (Sandbox Code Playgroud)

java swing repaint graphics2d japplet

5
推荐指数
2
解决办法
1万
查看次数

Java中的repaint()不会立即"重新绘制"?

我有这样的代码:

// In MyPanel.java
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    // Draw something
    mypanel_count++;
}

// In Test.java
public void testLargeData()
{
    while (notDone)
    {
        panel.repaint();
        // do huge work
        test_count++;
        System.out.println("Test_count: " + test_count + ", MyPanel_count: " + mypanel_count);
    }
}

// Output !!!
Test_count: 752, MyPanel_count: 23
Test_count: 753, MyPanel_count: 23
Test_count: 754, MyPanel_count: 23
Test_count: 755, MyPanel_count: 24
Run Code Online (Sandbox Code Playgroud)

但是当我改变panel.repaint()panel.paintComponent(panel.getGraphics()),出局是正确的:

Test_count: 752, MyPanel_count: 752
Test_count: 753, MyPanel_count: 753
Test_count: 754, MyPanel_count: 754
Test_count: …
Run Code Online (Sandbox Code Playgroud)

java swing repaint paintcomponent

5
推荐指数
1
解决办法
2万
查看次数