//Java klass "Klick"
public class Klick {
//Medlemsvariabler.
private int x = 0;
private int y = 0;
private int r = 1;
public int antal = Rityta.antalKlick;
//Konstruktor
public Klick ( int x, int y, int r ) {
this.sättX(x);
this.sättY(y);
this.sättRadie(r);
this.sättAntal(antal);
}
//Sätt och hämtametoder för radie
public int hämtaRadie( int r ){
return r;
}
public void sättRadie( int r ){
if (r > 0) this.r = r;
else this.r = -r;
}
//Sätt och hämtametoder för Y-koordinater
public int hämtaY( int y ){
return y;
}
public void sättY( int y ){
if (y > 0) this.y = y;
else this.y = -y;
}
//Sätt och hämtametoder för X-koordinater
public int hämtaX( int x ){
return x;
}
public void sättX( int x ){
if (x > 0) this.x = x;
else this.x = -x;
}
//Sätt och hämtametoder för Antal
public int hämtaAntal( int antal ){
return antal;
}
public void sättAntal( int antal ){
if (antal > 0) this.antal = antal;
else this.antal = -antal;
}
public void rita (java.awt.Graphics g) {
if (antal == 1) {
g.setColor(Color.BLUE);
g.fillOval(x-r, y-r, r*2, r*2);
}
else if (antal == 2) {
g.setColor(Color.ORANGE);
g.fillOval(x-r, y-r, r*2, r*2);
}
else if (antal == 3) {
g.setColor(Color.RED);
g.fillOval(x-r, y-r, r*2, r*2);
}
else {
g.setColor(Color.CYAN);
g.fillOval(x-r, y-r, r*2, r*2);
}
}
}
//Java Klass "Sikte" (this is the one that's not working properly)
public class Sikte {
//Medlemsvariabler.
private int x = 0;
private int y = 0;
private int r = 1;
public int antal = Rityta.antalKlick;
//Konstruktor
public Sikte ( int x, int y, int r ) {
this.sättX(x);
this.sättY(y);
this.sättRadie(r);
this.sättAntal(antal);
}
//Sätt och hämtametoder för radie
public int hämtaRadie( int r ){
return r;
}
public void sättRadie( int r ){
if (r > 0) this.r = r;
else this.r = -r;
}
//Sätt och hämtametoder för Y-koordinater
public int hämtaY( int y ){
return y;
}
public void sättY( int y ){
if (y > 0) this.y = y;
else this.y = -y;
}
//Sätt och hämtametoder för X-koordinater
public int hämtaX( int x ){
return x;
}
public void sättX( int x ){
if (x > 0) this.x = x;
else this.x = -x;
}
//Sätt och hämtametoder för Antal
public int hämtaAntal( int antal ){
return antal;
}
public void sättAntal( int antal ){
if (antal > 0) this.antal = antal;
else this.antal = -antal;
}
public void rita (java.awt.Graphics g) {
if (antal == 0) {
g.setColor(Color.BLUE);
g.fillOval(x-r, y-r, r*2, r*2);
}
else if (antal == 1) {
g.setColor(Color.ORANGE);
g.fillOval(x-r, y-r, r*2, r*2);
}
else if (antal == 2) {
g.setColor(Color.RED);
g.fillOval(x-r, y-r, r*2, r*2);
}
else {
g.setColor(Color.CYAN);
g.fillOval(x-r, y-r, r*2, r*2);
}
}
}
//Java Panel "Rityta"
public class Rityta extends javax.swing.JPanel {
// Data:
Sikte sikte;
Klick[] klick = new Klick[4];
public static int antalKlick = 0;
public Rityta() {
initComponents();
sikte = new Sikte(20, 20, 10);
}
public void paintComponent(java.awt.Graphics g) {
super.paintComponent(g);
sikte.rita(g);
for (int i=0; i < antalKlick; i++)
if (klick[i] != null) klick[i].rita(g);
}
private void formMouseClicked(java.awt.event.MouseEvent evt) {
klick[antalKlick++] = new Klick(evt.getX(), evt.getY(),10);
repaint();
}
private void formMouseMoved(java.awt.event.MouseEvent evt) {
sikte.sättX(evt.getX());
sikte.sättY(evt.getY());
repaint();
}