Метод перекраски не перерисовывает вид - PullRequest
0 голосов
/ 01 января 2019

Итак, ребята, это мой PlayView

public class PlayView extends JPanel {  

TagMan tagMan;

public PlayView() {
    this.setFocusable(true);
    setupPane();
    tagMan = new TagMan();
}

public void setupPane() {
    this.setPreferredSize( new Dimension(1100,800) );
    Color colorBlueBack = Color.decode("#000332");
    this.setBackground(colorBlueBack);
}

//paint tagman
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g.setColor(Color.WHITE);
    g2.fill(new Ellipse2D.Double(tagMan.getXPosition(), tagMan.getYPosition(), tagMan.getSize(), tagMan.getSize()));
}

}

, а это мой класс контроллера, открытый класс GameController расширяет KeyAdapter {

// Controllers
private MainController mainController;

// Views
private GameView gameView;
private PlayView playView;

// Models
private Game game;

public GameController(GameView gameView, PlayView playView, MainController mainController) {
    this.gameView = gameView;
    this.playView = playView;
    this.mainController = mainController;

    game = new Game();

    playView.addKeyListener(this);
}

@Override
public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
        game.getTagMan().moveRight();
        System.out.println("RIGHT: " + game.getTagMan().getXPosition());
    }

    if (e.getKeyCode() == KeyEvent.VK_UP) {
        game.getTagMan().moveUp();
        System.out.println("UP: " + game.getTagMan().getYPosition());
    }

    if (e.getKeyCode() == KeyEvent.VK_DOWN) {
        game.getTagMan().moveDown();
        System.out.println("DOWN: " + game.getTagMan().getYPosition());
    }
    playView.repaint();

}

@Override
public void keyReleased(KeyEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
    // TODO Auto-generated method stub

}

Так что я попробовалперекрашивать объект при каждом нажатии кнопки.Но это не двигается ..?Что я скучаю.Действие изменяет значения tagMan и корректно печатается в системном выводе.Я пытаюсь сделать это в течение 4 часов, но не могу найти правильное решение для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...