Ahoj jsem naprostý začátečník co se týče jazyku java a hlavně událostí. Doufám že mi tady někdo napoví, nějak jsem se zaseknul no jak postupovat. Tak jsem si vytyčil úkol aby se spustila funkce/metoda startHry(); a následně se vše znovu vykreslilo při kliknutí kamkoliv na JPanel ale nedaří se mi to už chvíli větší než malou. Potřeboval bych trochu pošoupnout. Doufám že toho kódu nebude moc. Potřeboval bych vědět jestli mám události tam kde mají být a jak. Vím že nemám jinak by to dělalo to co chci:-)
Tady je kód:
package reversi;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class HraciDeska extends JPanel implements MouseListener {
static final Color cerna = Color.black;
static final Color bila = Color.white;
static final Color zelena = Color.green;
int velPole = 50;
int velKamene = 46;
int ypoz = 0;
int xpoz = 0;
Graphics2D g2d;
// kdo hraje - cerny vzdy zacina; O je cerny hrac, 1 je bili hrac
int hraje = 0;
boolean napovedaTahu = true;
public char[][] abstrPOLE;
public HraciDeska() {
this.setBackground(Color.green);
abstrPOLE = new char[8][8];
// prozatimní spouštění
//startHry();
addMouseListener(this);
}
public void startHry() {
// nastavení kamenů bílého pro start
abstrPOLE[3][3] = 'X';
abstrPOLE[4][4] = 'X';
// nastavení kamenů černého pro start
abstrPOLE[4][3] = 'O';
abstrPOLE[3][4] = 'O';
}
public void mozneTahy() {
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g2d = (Graphics2D) g;
kresli(g2d);
}
public void kresli(Graphics d2d) {
nakresliDesku(g2d);
nakresliKameny(g2d);
}
public void nakresliDesku(Graphics2D g2d) {
ypoz = 0;
xpoz = 0;
for(int j = 0; j < 8; j++) {
xpoz +=50;
g2d.drawLine(xpoz, 0, xpoz, this.getHeight()-1);
}
for(int j = 0; j < 8; j++) {
ypoz +=50;
g2d.drawLine(0, ypoz, this.getWidth()-1, ypoz);
}
}
public void nakresliKameny(Graphics g2d) {
for(int y = 0; y < 8; y++) {
for(int x = 0; x < 8; x++) {
if(abstrPOLE[y][x] == 'X') {
g2d.setColor(bila);
g2d.fillOval((x*velPole)+2, (y*velPole)+2, velKamene, velKamene);
}
if(abstrPOLE[y][x] == 'O') {
g2d.setColor(cerna);
g2d.fillOval((x*velPole)+2, (y*velPole)+2, velKamene, velKamene);
}
}
}
}
public void mouseClicked(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
startHry();
repaint();
}
public void mousePressed(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseReleased(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}