Я хочу построить лабиринт с игроком, который двигается по доске лабиринта.
Я создаю 2 подкласса Canvas
: первый, который рисует лабиринт, и второй, который рисует игрок.
В каждом подклассе Canvas
я переопределяю метод Paint
, поэтому в основном это выглядит так:
public class MazeCanvas extends Canvas {
// override
public void paint(Graphics win) {
}
}
public class PlayerCanvas extends Canvas {
// override
public void paint(Graphics win) {
}
}
public class ShellClass implements ActionListener {
public void run() {
Display display = new Display();
Shell shell = new Shell(display);
shell.open();
Button goButton = new Button(shell, SWT.PUSH);
goButton.addActionListener(shell);
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == goButton) {
//here I want to repaint the obj of PlayerCanvas ;
}
}
Итак .. мой вопрос:
Что мне нужно сделать, чтобы 2 подкласса Canvas
были установлены на Shell
в классе ShellClass
?
Если я использую базовый Canvas
, я пишу:
Canvas canvas = new Canvas(shell, SWT.MAX);
но что я должен написать, если это подкласс Canvas
?
Заранее спасибо!