So I have a DrawStar class that draws a star using Polygon like that:
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
int[] cX =
I reproduce your problem. It was Layout
problem. By default JFrame
has BorderLayout
with CENTER
alignment. You should change your layout and screen size.
JFrame starsframe = new JFrame();
starsframe.setTitle("Random stars...");
starsframe.setLayout(new GridLayout( 1,2));// Use gridLayout
DrawStar star1 = new DrawStar(300, 200, Color.red);
starsframe.add(star1);
DrawStar star2 = new DrawStar(400, 300, Color.blue);
starsframe.add(star2);
starsframe.setSize(1000,700);// Increase the screen size.
starsframe.setLocationRelativeTo(null);
starsframe.setVisible(true);
starsframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
To see the two stars I used GridLayout(1,2)
and bigger setSize(1000, 700)
. But it is not optimum solution. You should get the x
, y
dynamically with corresponding to Screen Size using getWidth()
and getHeight()
method.