Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

can someone help me create this. this is my code so far import java.awt.Color; i

ID: 3826129 • Letter: C

Question

can someone help me create this. this is my code so far


import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JApplet;

public class OCCLogo extends JApplet{

   public void init()
   {
       setSize(550,450);
   }

  
   public void paint(Graphics canvas)
   {
      
       //lets define a for loop to print 5 circles going across
      
       for(int row = 0; row <= 840; row += 210)
       {
          
           //lets define a nested for loop to print 4 circles going down
           for(int col = 0; col <= 690; col +=230)
           {
       // orange
       canvas.setColor(Color.ORANGE);
       canvas.fillOval(row, col, 200, 200);
      
       //white
       canvas.setColor(Color.WHITE);
       canvas.fillOval(row +10, col + 10, 180, 180);
      
       //blue
       canvas.setColor(Color.BLUE);
       canvas.fillArc(row + 15, col + 15, 170, 170, 60, 265);
       // white
       canvas.setColor(Color.WHITE);
       canvas.fillOval(row + 40, col + 30, 145, 145);
      
      
       //blue
       canvas.setColor(Color.BLUE);
       canvas.fillArc(row + 45, col +35, 135, 135, 70, 250);
       // white
       canvas.setColor(Color.WHITE);
       canvas.fillOval(row + 60, col + 50, 115, 115);
      
       // message
       canvas.setColor(Color.BLUE);
       canvas.drawString("Orange Coast College", row + 35, col + 220);
           }  
   }
  
   }
  

  
  
}

Safari File Edit View History Bookmarks Develop Window Help 80% Tue 8:33 PM occ.blackboard.com Week 6: 315 3/1 Chegg Study I Guided solutions and Study Help I Chegg.com 32865.20163 Orange Coast Cole Orange Coast College Orange Co College Orange Coast College Orange Coast C 0range Coast College Orange Coast C College Coast College Orange Coast C COC) COCO Orange Coast College Orange Coast C Orange Co College Coast College Orange Coast angecoastco int(Graphics)

Explanation / Answer


You need to call super.paint(g); in your paint method, as to not leave paint artifacts.
Never call repaint() from inside the paint method
Don't explicitly call paint, as you do in update(), when you mean to call reapaint()
just update the x and y values from inside the update() method, then call repaint()
You don't need to take a Graphics argument in update()
You need to call update() somewhere repeatedly in a loop, as it updates the x and y and reapint()s
If your class is going to be a Runnable, then you should put some code in the run() method. That's probably where you should have your loop

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

public class circles extends Applet implements Runnable {

int x = 0, y = 0;

public void start() {
setSize(500, 500);
setBackground(Color.BLACK);
new Thread(this).start();
}

public void run() {
while (true) {
try {
update();
Thread.sleep(50);

} catch (InterruptedException ex) {

}
}
}

public void update() {
x += 5;
y += 6;
repaint();
}

public void paint(Graphics e) {
super.paint(e);
Graphics2D g = (Graphics2D) e;
g.setColor(Color.BLUE);
g.fillOval(x, y, 20, 20);

}
}


Side Notes

Why use Applets in the first place. If you must, why use AWT Applet and not Swing JApplet? Time for an upgrade.
Here's how I'd redo the whole thing in Swing, using a Swing Timer instead of a loop and Thread.sleep, as you should be doing.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class Circle extends JPanel{
private static final int D_W = 500;
private static final int D_H = 500;

int x = 0;
int y = 0;
public Circle() {
setBackground(Color.BLACK);

Timer timer = new Timer(50, new ActionListener(){
public void actionPerformed(ActionEvent e) {
x += 5;
y += 5;
repaint();
}
});
timer.start();
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillOval(x, y, 20, 20);

}

@Override
public Dimension getPreferredSize() {
return new Dimension(D_W, D_H);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.add(new Circle());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}

UPDATE

"Problem is, that's a JPANEL application. I specifically want to make an applet easily usable on a web page. "
You can still use it. Just use the JPanel. Take out the main method, and instead of Applet, use a JApplet and just add the JPanel to your applet. Easy as that
.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.Timer;

public class CircleApplet extends JApplet {

@Override
public void init() {
add(new Circle());
}

public class Circle extends JPanel {

private static final int D_W = 500;
private static final int D_H = 500;

int x = 0;
int y = 0;

public Circle() {
setBackground(Color.BLACK);

Timer timer = new Timer(50, new ActionListener() {
public void actionPerformed(ActionEvent e) {
x += 5;
y += 5;
repaint();
}
});
timer.start();
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillOval(x, y, 20, 20);

}

@Override
public Dimension getPreferredSize() {
return new Dimension(D_W, D_H);
}

}
}

Hope this helps.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote