我正在使用Graphics在JPanel上绘制椭圆。最低的椭圆形发生了一些事情,而不是保留一种颜色,是椭圆形条纹中的多种颜色。其他椭圆形也不会发生这种情况。
我的JFrame大小是600乘600。 这是我的代码:
package virus;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.event.MouseListener;
import java.util.Random;
public class VirusGamePanel extends JPanel {
private static final long serialVersionUID = 1L;
Random colour = new Random();
int score = 0;
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.magenta);
g.drawString("Score: "+ score,200,200);
g.setColor(Color.orange);
g.drawOval(200,150,200,200);
Color rand = new Color(colour.nextInt(255),colour.nextInt(255),colour.nextInt(255));
g.setColor(rand);
g.fillOval(270,50,50,50);
g.fillOval(100,100,50,50);
g.fillOval(450,100,50,50);//this line is causing the problem
g.fillOval(100,400,50,50);
}
}
答案 0 :(得分:2)
我写了一个小测试程序,在JFrame中绘制你的面板,一切看起来都很好(我没有条纹)。我正在使用Java 7.也许你的错误是你程序的另一部分:)。
你对这个程序有同样的错误吗?
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class VirusGamePanel extends JPanel {
private static final long serialVersionUID = 1L;
Random colour = new Random();
int score = 0;
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.magenta);
g.drawString("Score: "+ score,200,200);
g.setColor(Color.orange);
g.drawOval(200,150,200,200);
Color rand = new Color(colour.nextInt(255),colour.nextInt(255),colour.nextInt(255));
g.setColor(rand);
g.fillOval(270,50,50,50);
g.fillOval(100,100,50,50);
g.fillOval(450,100,50,50);//this line is causing the problem
g.fillOval(100,400,50,50);
}
public static void main(String[] args) {
JFrame f=new JFrame();
f.setSize(600,600);
f.add(new VirusGamePanel());
f.setVisible(true);
}
}