0
我創建了一個JFrame並繪製矩形1x1的大小,每個矩形都是來自隨機生成器的RGB值的隨機顏色。當我運行代碼時,框架繪製所有的矩形,但幾秒鐘後,框架中的矩形會改變。Java JFrame繪製像素大小矩形
Rectangle類:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.util.Random;
import javax.swing.*;
public class RandomRect extends JComponent
{
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g)
{
Random rand = new Random();
Graphics2D g2 = (Graphics2D) g;
for(int y=1; y<601; y++)
{
for(int x=1; x<1201; x++)
{
float red = rand.nextFloat();
float green = rand.nextFloat();
float blue = rand.nextFloat();
Color randomColor = new Color(red, green, blue);
Rectangle box = new Rectangle(x, y, 1, 1);
g2.setColor(randomColor);
g2.fill(box);
}
}
System.out.println("Finished draw");
}
}
「說完抽獎」 被打印兩次。
的RectViewer類:
import java.awt.Color;
import javax.swing.*;
public class RectViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(1200,600);
frame.setTitle("Using the Rectangle Class");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBackground(Color.white);
RandomRect rect = new RandomRect();
frame.add(rect);
frame.setVisible(true);
}
}
我在一個println扔,看看它調用矩形類兩次,它是,但我不知道爲什麼!誰能幫忙?
您可能會發現多次調用「paintComponent(Graphics)」。嘗試將矩形渲染爲圖像並將其顯示在標籤中。 –