У меня сейчас проблема увеличения счетчика очков в сочетании с событием MouseListener
.Вот мой текущий прогресс (пока удален какой-то нерелевантный код)
import java.awt.*;
import javax.swing.*;
import java.awt.Color.*;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.util.Random;
public class Checkers extends JFrame
{
Random random = new Random();
private final int ROWS = 2;
private final int COLS = 5;
private final int GAP = 2;
private final int NUM = ROWS * COLS;
private int x;
public static int score;
private JPanel pane = new JPanel(new GridLayout(ROWS,COLS, GAP,GAP));
public JLabel lbl1 = new JLabel ("score: " + score);
private MyPanel [] panel = new MyPanel[NUM];
private Color col1 = Color.RED;
private Color col2 = Color.WHITE;
private Color tempColor;
public Checkers()
{
super("Checkers");
setSize(600,600);
setVisible(true);
setBackground(Color.BLACK);
setBoard();
}
//pane background colour and the size of this pane.
pane.setBackground(Color.BLACK);
pane.setPreferredSize(new Dimension(300,300));
//pane background colour and size of this pane.
pane2.setBackground(Color.white);
pane2.setPreferredSize(new Dimension(300,300));
//directions on the board where these panes appear.
add(pane, BorderLayout.WEST);
add(pane2, BorderLayout.EAST);
pane2.add(lbl1);
pane2.setLayout(new BoxLayout(pane2, BoxLayout.PAGE_AXIS));
И класс MyPanel
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
public class MyPanel extends JPanel implements MouseListener {
public MyPanel() {
addMouseListener(this);
}
@Override
public void mouseClicked(MouseEvent e) {
setBackground(Color.BLACK);
Checkers.score++;
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
Ожидаемый результат - Один из меньшихпри щелчке по панелям в первой панели счетчик score
на панели 2 увеличивается на 1, и это продолжается до тех пор, пока не будут выполнены все нажатия, и score
не может быть увеличено в дальнейшем.
Текущий результат - score
увеличивает, но не так, как должно, вместо этого точки переносятся на следующий экземпляр графического интерфейса пользователя (например, если в первом случае щелкнуть 3 панели, точки будутв этом первом случае все равно остается 0, но после создания нового графического интерфейса счетчик очков будет равен 3), а это не то, что мне нужно.
Любая помощь / руководство приветствуются.