java - 无法在java中重新绘制

标签 java swing jframe repaint

我无法在 Jframe 内动态 repaint()。

public static BufferedImage createBufferedImage(BufferedImage image) 
{
    ColorModel cm = image.getColorModel();
    boolean premultiplied = cm.isAlphaPremultiplied();
    WritableRaster raster = image.copyData(image.getRaster());
    return new BufferedImage(cm, raster, premultiplied, null);
}


public static void main(String[] args) {


BufferedImage img = new BufferedImage(old_width_i, old_height_i, BufferedImage.TYPE_INT_RGB);

img=createBufferedImage(img_white_screen);



JFrame frame=new JFrame();
JLabel label = new JLabel(new ImageIcon(img));
frame.getContentPane().add(label, BorderLayout.WEST);
frame.pack();
frame.setVisible(true); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

img.flush();
img=createBufferedImage(img_black_screen);
//  frame.removeAll();
//  frame.revalidate();
//  label.removeAll();
//  label = new JLabel(new ImageIcon(img));
//  frame.getContentPane().add(label, BorderLayout.WEST);

frame.repaint();
}

它基本上创建一个屏幕,其中第一个分配给“img”(即 img_white_screen)变量,并且不会更改为第二个分配,即 img_black_screen

最佳答案

关于java - 无法在java中重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788184/

相关文章:

java - 在继续之前等待 Java Swing 中的按钮被按下?

java - 如何将 MouseListener 添加到框架

java - 退出两个 JFrame 之一同时退出两个 JFrame

java - 具有可选部分的 DateTimeFormatter

java - 关于简单计算器中的布局

java - 为什么重画只画一条线?

当框架不可见时,Java 不处理对话框

java - 为什么用 BufferedReader 读取文件注释的第一行?

java - 无法将java文件编译为hadoop的类文件

java - 构造函数与类不匹配