Разделы презентаций


Основы программирования - Java ФИСТ 1 курс Власенко Олег Федосович

Содержание

Неформальное введение в ООП ( Again  )

Слайды и текст этой презентации

Слайд 1Основы программирования - Java ФИСТ 1 курс Власенко Олег Федосович
Лекция 5
ООП.
Знакомство с

таймером, клавиатурой и мышкой

Основы программирования - Java ФИСТ 1 курс   Власенко Олег ФедосовичЛекция 5ООП.Знакомство с таймером, клавиатурой и

Слайд 2Неформальное введение в ООП ( Again  )

Неформальное введение в ООП ( Again  )

Слайд 3Что такое ООП?

Что такое ООП?

Слайд 4Объект Кот

Объект Кот

Слайд 5Какие свойства есть у кота?

Какие свойства есть у кота?

Слайд 6Объект Кот

Объект Кот

Слайд 7А методы?

А методы?

Слайд 8Объект Кот

Объект Кот

Слайд 9А что с другими животными?

А что с другими животными?

Слайд 10Собака

Собака

Слайд 11Сравнение свойств Кота и Собаки

Сравнение свойств Кота и Собаки

Слайд 12Сравнение методов Кота и Собаки

Сравнение методов Кота и Собаки

Слайд 13Домашние животные

Домашние животные

Слайд 14Принцип наследования

Принцип наследования

Слайд 15Схема наследования

Схема наследования

Слайд 16Несколько терминов

Несколько терминов

Слайд 17UML – диаграмма классов
UML = Unified Modeling Language

UML – диаграмма классовUML = Unified Modeling Language

Слайд 18источник вдохновения
http://www.slideshare.net/smirik/ruby-11754239

источник вдохновенияhttp://www.slideshare.net/smirik/ruby-11754239

Слайд 19Пример с ООП

Пример с ООП

Слайд 20Перевод числа из 10-й системы счисления в 2-ую
Пример:
N = 12
N

% 2 = 12 % 2 = 0  0 N

= N / 2 = 12 / 2 = 6 N > 0 +
N % 2 = 6 % 2 = 0  0 N = N / 2 = 6 / 2 = 3 N > 0 +
N % 2 = 3 % 2 = 1  1 N = N / 2 = 3 / 2 = 1 N > 0 +
N % 2 = 1 % 2 = 1  1 N = N / 2 = 1 / 2 = 0 N > 0 -

Полученные цифры нужно вывести в обратном порядке:
1100

Перевод числа  из 10-й системы счисления в 2-уюПример:N = 12N % 2 = 12 % 2

Слайд 21Реализация через StringBuilder
public class Lect5Main1 {
public static void main(String[] args)

{
int num = 49;
StringBuilder str = new StringBuilder();
do {
int binDigit

= num % 2;
char binChar = binDigit == 0 ? '0' : '1';
str.append(binChar);
num = num / 2;
} while (num > 0);
str.reverse();
System.out.println(str.toString());
}
}
Реализация через StringBuilderpublic class Lect5Main1 {	public static void main(String[] args) {		int num = 49;		StringBuilder str = new

Слайд 22Реализация через стек
public class Lect5Main2 {
public static void main(String[] args)

{
int num = 129;
StackChar stack = new StackChar(32);
do {
int

binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Реализация через стекpublic class Lect5Main2 {	public static void main(String[] args) {		int num = 129;		StackChar stack = new

Слайд 23Как работает стек

Как работает стек

Слайд 24Реализуем стек

public class StackChar {
private char [] stack;
private int top;

public

StackChar(int size) {
stack = new char[size];
top = 0;
}



public void push(char

ch) {
stack[top] = ch;
top++;
}

public char pop() {
top--;
return stack[top];
}

public boolean isEmpty() {
return top == 0;
}

}
Реализуем стекpublic class StackChar {	private char [] stack;	private int top;	public StackChar(int size) {		stack = new char[size];		top =

Слайд 25Реализация через стек (Again)
public class Lect4Main2_v2 {
public static void main(String[]

args) {
int num = 129;
StackChar stack = new StackChar(32);
do

{
int binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Реализация через стек (Again)public class Lect4Main2_v2 {	public static void main(String[] args) {		int num = 129;		StackChar stack =

Слайд 26Интерфейс
Интерфе́йс (англ. interface) — общая граница между двумя функциональными объектами, требования к

которой определяются стандартом;
совокупность средств, методов и правил взаимодействия (управления,

контроля и т.д.) между элементами системы. (https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81 )

Интерфейс это совокупность методов и правил взаимодействия элементов системы. Другими словами интерфейс определяет как элементы будут взаимодействовать между собой.
Интерфейс двери – элементы: ручка, замок
Интерфейс автомобиля – элементы: руль, педали, рычаг коробки передач.
Когда вы используете эти "объекты" вы уверены в том что вы сможете использовать их подобным образом. Благодаря тому что вы знакомы с их интерфейсом

ИнтерфейсИнтерфе́йс (англ. interface) — общая граница между двумя функциональными объектами, требования к которой определяются стандартом; совокупность средств, методов и

Слайд 27Интерфейс IStackChar

public interface IStackChar {
void push(char ch);
char pop();
boolean isEmpty();
}

Интерфейс IStackCharpublic interface IStackChar {	void push(char ch);	char pop();	boolean isEmpty();}

Слайд 28реализация стека №1
public class StackChar1 implements IStackChar {

private char []

stack;
private int top;

public StackChar1(int size) {
stack = new char[size];
top =

0;
}

@Override
public void push(char ch) {
stack[top] = ch;
top++;
}

}
реализация стека №1public class StackChar1 implements IStackChar {	private char [] stack;	private int top;	public StackChar1(int size) {		stack =

Слайд 29реализация стека №2
import java.util.ArrayList;

public class StackChar2 implements IStackChar {
ArrayList stack;

public

StackChar2(int size) {
stack = new ArrayList(size);
}

@Override
public void push(char ch) {
stack.add(ch);
}



}

реализация стека №2import java.util.ArrayList;public class StackChar2 implements IStackChar {	ArrayList stack;	public StackChar2(int size) {		stack = new ArrayList(size);	}	@Override	public void

Слайд 30реализация стека №2 (ч 2)
public class StackChar2 implements IStackChar {
ArrayList

stack;

@Override
public char pop() {
int lastIndex = stack.size() - 1;
char ch

= stack.get(lastIndex);
stack.remove(lastIndex);
return ch;
}

@Override
public boolean isEmpty() {
return stack.isEmpty();
}
}
реализация стека №2 (ч 2)public class StackChar2 implements IStackChar {	ArrayList stack;	…	@Override	public char pop() {		int lastIndex = stack.size()

Слайд 31Решение с интерфейсом
public class Lect4Main2_v3 {
public static void main(String[] args)

{
int num = 26;
//IStackChar stack = new StackChar1(32);
IStackChar stack

= new StackChar2(32);
do {
int binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Решение с интерфейсомpublic class Lect4Main2_v3 {	public static void main(String[] args) {		int num = 26;		//IStackChar stack = new

Слайд 32Диаграмма классов (UML)

Диаграмма классов (UML)

Слайд 33Детали ООП в Java

Детали ООП в Java

Слайд 34Модификаторы доступа
private: члены класса доступны только внутри класса;
«default» (package-private) (модификатор,

по-умолчанию): члены класса видны внутри пакета;
protected: члены класса доступны внутри

пакета и в наследниках;
public: члены класс доступны всем;

Модификаторы доступаprivate: члены класса доступны только внутри класса;«default» (package-private) (модификатор, по-умолчанию): члены класса видны внутри пакета;protected: члены

Слайд 35Модификаторы доступа
static - ссылка этого поля у любого экземпляра класса

будет ссылаться на одно и то же значение
final – это

модификатор, позволяющий объявлять константные поля в классе.

Модификаторы доступаstatic - ссылка этого поля у любого экземпляра класса будет ссылаться на одно и то же

Слайд 36Элементы класса
public class Sample {
private int x; //

переменная экземпляра класса
private int y = 0; //

переменная экземпляра класса
public final int CURRENT_YEAR = 2012; // константа
protected static int bonus; // переменная класса
static String version = "Java SE 7"; // переменная класса
protected Calendar now;
public int method(int z) {
return z++;
}
}
Элементы классаpublic class Sample {  private int x; // переменная экземпляра класса  private int y

Слайд 37Примеры использования статических методов
public class StaticSamples {
public static void main(String[]

args) {
double phi = Math.PI / 6;
System.out.printf("sin(%f)=%f\n", phi, Math.sin(phi));
phi =

Math.PI / 4;
System.out.printf("tan(%f)=%f\n", phi, Math.tan(phi));
phi = Math.PI / 2;
System.out.printf("tan(%f)=%f\n", phi, Math.tan(phi));
System.out.printf("sin(%f)=%f\n", phi, Math.sin(phi));
System.out.printf("cos(%f)=%f\n", phi, Math.cos(phi));
}
}
Примеры использования статических методовpublic class StaticSamples {	public static void main(String[] args) {		double phi = Math.PI / 6;		System.out.printf(

Слайд 38Конструкторы
public class Quest {
// конструктор без параметров (по

умолчанию)
public Quest() {
System.out.println("Вызван конструктор

без параметров!!!");
}
// конструктор с параметрами
public Quest(int idc, String txt) {
super(); /* вызов конструктора супер класса явным образом необязателен, компилятор вставит его автоматически*/
System.out.println("Вызван конструктор c параметрами!!!");
System.out.println(id + " " + text);
}
}
Конструкторыpublic class Quest {  // конструктор без параметров (по умолчанию)  public Quest() {

Слайд 39Порядок инициализации класса
public class Department {
{ System.out.println("logic"); };

//2

static { System.out.println("static logic"); } //1
private int id = 7;
public Department(int d) {
id = d;
System.out.println("конструктор"); //3
}
int getId() { return id; }
{ id = 10; System.out.println("logic"); } //2
}
Порядок  инициализации классаpublic class Department {  { System.out.println(

Слайд 40Абстрактный класс
public abstract class AbstractCourse {
private String name;

public AbstractCourse() {
}
public abstract void

changeTeacher(int id); /*определение метода отсутствует */
public void setName(String n) {
name = n;
}
}
Абстрактный классpublic abstract class AbstractCourse {  private String name;  public AbstractCourse() {  }

Слайд 41Особенности наследования в Java
public class ArrayList extends AbstractList implements List,

RandomAccess, Cloneable, Serializable {

}

Внимание: В Java класс наследуется от ОДНОГО

класса, но реализует произвольное количество интерфейсов.
Особенности  наследования в Javapublic class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable {	…}Внимание: В Java

Слайд 42Литература
http://www.slideshare.net/smirik/ruby-11754239 (источник вдохновения - наследование)

http://hashcode.ru/questions/136909/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B-%D0%B2-%D0%BE%D0%BE%D0%BF-java-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%BC%D1%83 (источник вдохновения - интерфейсы)

Литератураhttp://www.slideshare.net/smirik/ruby-11754239 (источник вдохновения - наследование)http://hashcode.ru/questions/136909/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B-%D0%B2-%D0%BE%D0%BE%D0%BF-java-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%BC%D1%83 (источник вдохновения - интерфейсы)

Слайд 43Создаем заготовку для игры

Создаем заготовку для игры

Слайд 44Создаем заготовку для игры

Создаем заготовку для игры

Слайд 45Создаем заготовку для игры
btnAddFigure = new JButton("Add");
btnAddFigure.addActionListener(new ActionListener() {
public void

actionPerformed(ActionEvent arg0) {
tetrisArray.addFigure();
textArea.setText(tetrisArray.toString());
panel.repaint();
 
if (tetrisArray.isGameOver()) {
btnToLeft.setEnabled(false);
btnAddFigure.setEnabled(false);
btnToRight.setEnabled(false);
btnDown.setEnabled(false);
btnTimer.setEnabled(false);
}
}
});
btnAddFigure.setBounds(64, 202, 89, 23);
frmLab.getContentPane().add(btnAddFigure);

Создаем заготовку для игрыbtnAddFigure = new JButton(

Слайд 46Создаем заготовку для игры
btnToLeft = new JButton("

actionPerformed(ActionEvent e) {
tetrisArray.toLeft();
textArea.setText(tetrisArray.toString());
panel.repaint();
}
});
btnToLeft.setBounds(10, 202, 51, 23);
frmLab.getContentPane().add(btnToLeft);

Создаем заготовку для игрыbtnToLeft = new JButton(

Слайд 48Создаем заготовку для игры
btnDown = new JButton("Down");
btnDown.addActionListener(new ActionListener() {
public void

actionPerformed(ActionEvent e) {
tetrisArray.fallToBottom();
textArea.setText(tetrisArray.toString());
panel.repaint();
}
});
btnDown.setBounds(64, 226, 89, 23);
frmLab.getContentPane().add(btnDown);

Создаем заготовку для игрыbtnDown = new JButton(

Слайд 49Создаем заготовку для игры
btnTimer = new JButton("Timer");
btnTimer.addActionListener(new ActionListener() {
public void

actionPerformed(ActionEvent arg0) {
tetrisArray.fallOneLine();
textArea.setText(tetrisArray.toString());
panel.repaint();
}
});
btnTimer.setBounds(279, 202, 102, 23);
frmLab.getContentPane().add(btnTimer);

Создаем заготовку для игрыbtnTimer = new JButton(

Слайд 50Создаем заготовку для игры – TetrisArray
public class TetrisArray {
 
private int

[][]array;
private int lastI;
private int lastJ;
 
public TetrisArray() {
array = new int[6][8];
lastI

= array.length - 1;
lastJ = array[lastI].length - 1;
}
 
private int countFullLines = 0;
private boolean gameIsOver = false;
Создаем заготовку для игры – TetrisArraypublic class TetrisArray { 	private int [][]array;	private int lastI;	private int lastJ; 	public TetrisArray() {		array

Слайд 51Создаем заготовку для игры – TetrisArray
public int getGameResult() {
return countFullLines;
}

public

void addFigure() {
if (canAddFigure()) {
array[0][3] = 1;
} else {
gameIsOver =

true;
}
}

public void addBrick(int i, int j) {
if (array[i][j] == 0) {
array[i][j] = 2;
}
}
Создаем заготовку для игры – TetrisArraypublic int getGameResult() {	return countFullLines;}public void addFigure() {	if (canAddFigure()) {		array[0][3] = 1;	}

Слайд 52Создаем заготовку для игры – TetrisArray
public void deleteBrick(int i, int

j) {
if (array[i][j] == 2) {
array[i][j] = 0;
}
}

public boolean isGameOver()

{
return gameIsOver;
}

boolean canAddFigure() {
if (array[0][3] == 0) {
return true;
} else {
return false;
}
}
Создаем заготовку для игры – TetrisArraypublic void deleteBrick(int i, int j) {	if (array[i][j] == 2) {		array[i][j] =

Слайд 53Создаем заготовку для игры – TetrisArray
public void toLeft() {
if (!figureExist())

{
return;
}
if (canMoveToLeft()) {
moveToLeft();
} else {
fastenFigure();
}
}
public void toRight() {
if (!figureExist()) {
return;
}
if

(canMoveToRight()) {
moveToRight();
} else {
fastenFigure();
}
}
Создаем заготовку для игры – TetrisArraypublic void toLeft() {	if (!figureExist()) {		return;	}	if (canMoveToLeft()) {		moveToLeft();	} else {		fastenFigure();	}}public void toRight()

Слайд 54Создаем заготовку для игры – TetrisArray
void moveToLeft() {
for (int i

= 0; i

1; j <= lastJ; j++) {
if (array[i][j] == 1) {
array[i][j - 1] = 1;
array[i][j] = 0;
}
}
}
}


void moveToRight() {
for (int i = 0; i < lastI; i++) {
for (int j = lastJ - 1; j >= 0; j--) {

Создаем заготовку для игры – TetrisArrayvoid moveToLeft() {	for (int i = 0; i

Слайд 55Создаем заготовку для игры – TetrisArray
public void fallToBottom() {
if (!figureExist())

{
return;
}
while (canMoveDown()) {
moveDown();
}
fastenFigure();
}
public void fallOneLine() {
if (!figureExist()) {
return;
}
if (canMoveDown()) {
moveDown();
}

else {
fastenFigure();
}
}
Создаем заготовку для игры – TetrisArraypublic void fallToBottom() {	if (!figureExist()) {		return;	}	while (canMoveDown()) {		moveDown();	}	fastenFigure();}public void fallOneLine() {	if (!figureExist())

Слайд 56Создаем заготовку для игры – TetrisArray
void moveDown() {
// Начинаем с

предпоследней строки
for (int i = lastI - 1; i >=

0; i--) {
for (int j = 0; j <= lastJ; j++) {
if (array[i][j] == 1) {
array[i + 1][j] = 1;
array[i][j] = 0;
}
}
}
}
Создаем заготовку для игры – TetrisArrayvoid moveDown() {	// Начинаем с предпоследней строки	for (int i = lastI -

Слайд 57Создаем заготовку для игры – TetrisArray
boolean bottomLineIsFull() {
for (int j

= 0; j

{
return false;
}
}
return true;
}
Создаем заготовку для игры – TetrisArrayboolean bottomLineIsFull() {			for (int j = 0; j

Слайд 58Создаем заготовку для игры – TetrisArray
void deleteBottomLine() {
for (int i

= lastI - 1; i >= 0; i--) {
for (int

j = 0; j <= lastJ; j++) {
array[i + 1][j] = array[i][j];
}
}
for (int j = 0; j <= lastJ; j++) {
array[0][j] = 0;
}
}
Создаем заготовку для игры – TetrisArrayvoid deleteBottomLine() {	for (int i = lastI - 1; i >= 0;

Слайд 59Создаем заготовку для игры – TetrisArray
public boolean figureExist() {
for (int

i = 0; i

= 0; j <= lastJ; j++) {
if (array[i][j] == 1) {
return true;
}
}
}
return false;
}
Создаем заготовку для игры – TetrisArraypublic boolean figureExist() {	for (int i = 0; i

Слайд 60Создаем заготовку для игры – TetrisArray
boolean canMoveDown() {
for (int i

= 0; i < lastI; i++) {
for (int j =

0; j <= lastJ; j++) {
if (array[i][j] == 1) {
if (array[i + 1][j] == 2) {
return false;
}
}
}
}
for (int j = 0; j <= lastJ; j++) {
if (array[lastI][j] == 1) {
return false;
}
}
return true;
}
Создаем заготовку для игры – TetrisArrayboolean canMoveDown() {	for (int i = 0; i < lastI; i++) {						for

Слайд 61Создаем заготовку для игры – TetrisArray
boolean canMoveToLeft() {
for (int i

= 0; i

1; j <= lastJ; j++) {
if (array[i][j] == 1) {
if (array[i][j - 1] == 2) {
return false;
}
}
}
}
for (int i = 0; i <= lastI; i++) {
if (array[i][0] == 1) {
return false;
}
}
return true;
}
Создаем заготовку для игры – TetrisArrayboolean canMoveToLeft() {	for (int i = 0; i

Слайд 62Создаем заготовку для игры – TetrisArray
boolean canMoveToRight() {
for (int i

= 0; i

0; j < lastJ; j++) {
if (array[i][j] == 1) {
if (array[i][j + 1] == 2) {
return false;
}
}
}
}
for (int i = 0; i <= lastI; i++) {
if (array[i][lastJ] == 1) {
return false;
}
}
return true;
}
Создаем заготовку для игры – TetrisArrayboolean canMoveToRight() {	for (int i = 0; i

Слайд 63Создаем заготовку для игры – TetrisArray
void fastenFigure() {
for (int i

= 0; i

0; j <= lastJ; j++) {
if (array[i][j] == 1) {
array[i][j] = 2;
}
}
}
if (bottomLineIsFull()) {
deleteBottomLine();
countFullLines++;
}
}
Создаем заготовку для игры – TetrisArrayvoid fastenFigure() {	for (int i = 0; i

Слайд 64Создаем заготовку для игры – TetrisArray
public String toString() {
String str

= "";
for (int i = 0; i

{
for (int j = 0; j <= lastJ; j++) {
str = str + array[i][j] + " ";
}
str = str + "\n";
}
str = str + "\n";
str = str + "countFullLines=" + countFullLines + "\n";
if (gameIsOver) {
str = str + "GAME IS OVER!!!" + "\n";
}
return str;
}
Создаем заготовку для игры – TetrisArraypublic String toString() {	String str =

Слайд 65Создаем заготовку для игры – TetrisArray
final public static int CELL_HEIGHT

= 24;
final public static int CELL_WIDTH = 24;
public void drawArray(Graphics

g, int width, int height) {
for (int i = 0; i < array.length; i++) {
int top = i * CELL_HEIGHT;
for (int j = 0; j < array[i].length; j++) {
int left = j * CELL_WIDTH;
if (array[i][j] == 0) {
g.setColor(Color.GRAY);
} else if (array[i][j] == 1) {
g.setColor(Color.BLUE);
} else if (array[i][j] == 2) {
g.setColor(Color.RED);
}
g.fillRect(left, top, CELL_WIDTH, CELL_HEIGHT);
}
}
}
Создаем заготовку для игры – TetrisArrayfinal public static int CELL_HEIGHT = 24;final public static int CELL_WIDTH =

Слайд 66Создаем почти игру

Создаем почти игру

Слайд 67Создаем почти игру - interface Updated

public interface Updated {
void

update();
}

Создаем почти игру - interface Updated public interface Updated {	void update();}

Слайд 68Создаем почти игру - Win_TetrisGame
public class Win_TetrisGame
implements KeyListener,

Updated {

...


TetrisArray tetrisArray;
private JPanel panel;
private javax.swing.Timer timer;
private JLabel lblGameResult;
private JLabel

lblGameOver;
Создаем почти игру - Win_TetrisGame public class Win_TetrisGame implements KeyListener, Updated {	...	TetrisArray tetrisArray;	private JPanel panel;	private javax.swing.Timer timer;	private

Слайд 69Создаем почти игру - Win_TetrisGame
/**
* Initialize the contents

of the frame.
*/
private void initialize() {
frmLab = new JFrame();
frmLab.setTitle("Lab8

- \u043C\u044B \u0434\u0435\u043B\u0430\u0435\u043C \u0438\u0433\u0440\u0443!");
frmLab.setBounds(100, 100, 450, 300);
frmLab.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmLab.getContentPane().setLayout(null);
frmLab.addKeyListener(this); // Форма СЛУШАЕТ клавиатуру

panel = new TetrisPanel(tetrisArray, this);
panel.setBounds(10, 11, 249, 180);
frmLab.getContentPane().add(panel);
Создаем почти игру - Win_TetrisGame 	/**	 * Initialize the contents of the frame.	 */	private void initialize() {		frmLab

Слайд 70Создаем почти игру - Win_TetrisGame

lblGameResult = new JLabel("Count =

0");
lblGameResult.setBounds(284, 35, 113, 14);
frmLab.getContentPane().add(lblGameResult);

lblGameOver = new JLabel("");
lblGameOver.setFont(new Font("Traditional Arabic", Font.BOLD,

14));
lblGameOver.setBounds(277, 84, 131, 14);
frmLab.getContentPane().add(lblGameOver);
Создаем почти игру - Win_TetrisGame lblGameResult = new JLabel(

Слайд 71Создаем почти игру - Win_TetrisGame
//Будет вызываться каждые 500 мсек
timer

= new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if

(tetrisArray.figureExist()) {
tetrisArray.fallOneLine();
} else {
tetrisArray.addFigure();
}
panel.repaint();
String res = "Count = " + tetrisArray.getGameResult();
lblGameResult.setText(res);
if (tetrisArray.isGameOver()) {
lblGameOver.setText("GAME OVER!");
}
}
} );
timer.start();
Создаем почти игру - Win_TetrisGame //Будет вызываться каждые 500 мсекtimer = new Timer(1000, new ActionListener() {	public void

Слайд 72Создаем почти игру - Win_TetrisGame
}

@Override
public void keyReleased(KeyEvent arg0) {
switch(arg0.getKeyCode())

{
case KeyEvent.VK_LEFT:
tetrisArray.toLeft();
panel.repaint();
break;

case KeyEvent.VK_RIGHT:
tetrisArray.toRight();
panel.repaint();
break;

Создаем почти игру - Win_TetrisGame }@Overridepublic void keyReleased(KeyEvent arg0) {	switch(arg0.getKeyCode()) {	case KeyEvent.VK_LEFT:		tetrisArray.toLeft();		panel.repaint();		break;	case KeyEvent.VK_RIGHT:		tetrisArray.toRight();		panel.repaint();			break;

Слайд 73Создаем почти игру - Win_TetrisGame
case KeyEvent.VK_DOWN:
tetrisArray.fallToBottom();
panel.repaint();
break;
default:
return;
}

String res = "Count

= " + tetrisArray.getGameResult();
lblGameResult.setText(res);

if (tetrisArray.isGameOver()) {
lblGameOver.setText("GAME OVER!");
}
}


Слайд 74Создаем почти игру - Win_TetrisGame
@Override
public void keyPressed(KeyEvent arg0) {
//

TODO Auto-generated method stub
}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated

method stub
}

@Override
public void update() {
panel.repaint();
}
}
Создаем почти игру - Win_TetrisGame 	@Override	public void keyPressed(KeyEvent arg0) {		// TODO Auto-generated method stub	}	@Override	public void keyTyped(KeyEvent e)

Слайд 75Создаем почти игру - TetrisPanel
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;

public class

TetrisPanel extends JPanel implements MouseListener {

TetrisArray arr;
Updated win;

public TetrisPanel(TetrisArray array,

Updated window) {
arr = array;
win = window;
addMouseListener(this); // Слушатель ТЕПЕРЬ слушает!!!
}
Создаем почти игру - TetrisPanelimport java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JPanel;public class TetrisPanel extends JPanel implements MouseListener {		TetrisArray arr;	Updated

Слайд 76Создаем почти игру - TetrisPanel
public void paint(Graphics g) {
super.paint(g);
arr.drawArray(g, this.getWidth(),

this.getHeight());
}

Создаем почти игру - TetrisPanel	public void paint(Graphics g) {		super.paint(g);				arr.drawArray(g, this.getWidth(), this.getHeight());	}

Слайд 77Создаем почти игру - TetrisPanel
@Override
public void mouseClicked(MouseEvent me) {
int i

= me.getY() / TetrisArray.CELL_HEIGHT;
int j = me.getX() / TetrisArray.CELL_WIDTH;
int cntClicks

= me.getClickCount();

if (cntClicks == 2) {
arr.addBrick(i, j);
} else {
arr.deleteBrick(i, j);
}
//repaint();
win.update();
}
Создаем почти игру - TetrisPanel	@Override	public void mouseClicked(MouseEvent me) {		int i = me.getY() / TetrisArray.CELL_HEIGHT;		int j = me.getX()

Слайд 78Создаем почти игру - TetrisPanel
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO

Auto-generated method stub
}

@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method

stub
}


Создаем почти игру - TetrisPanel	@Override	public void mouseEntered(MouseEvent arg0) {		// TODO Auto-generated method stub	}	@Override	public void mouseExited(MouseEvent arg0) {		//

Слайд 79Создаем почти игру - TetrisPanel
@Override
public void mousePressed(MouseEvent arg0) {
// TODO

Auto-generated method stub
}

@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method

stub

}

}
Создаем почти игру - TetrisPanel	@Override	public void mousePressed(MouseEvent arg0) {		// TODO Auto-generated method stub	}	@Override	public void mouseReleased(MouseEvent arg0) {		//

Слайд 80Создаем почти игру
MouseListener, правая и левая кнопка мыши - https://javatalks.ru/topics/4964








Создаем почти игруMouseListener, правая и левая кнопка мыши - https://javatalks.ru/topics/4964

Слайд 81Спасибо за внимание!
Власенко Олег Федосович


E-mail: vlasenko.oleg@gmail.com
Vk: vk.com/oleg.f.vlasenko
Телефон: 8 902 246

05 47


Спасибо за внимание!Власенко Олег ФедосовичE-mail: vlasenko.oleg@gmail.comVk: vk.com/oleg.f.vlasenkoТелефон: 8 902 246 05 47

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика