Java-метод drawImageJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java-метод drawImage

Сообщение Anonymous »

В ходе упражнения я пытаюсь поместить в ArrayList набор объектов Picture, затем перетасовать их в случайном порядке и отобразить в виде сетки 3x3. Однако метод перемешивания у меня работает неправильно. Или, возможно, я делаю что-то не так в методах draw или drawImage, я не знаю.
Я всегда получаю изображение, отображаемое из 9 частей в исходном порядке, а не в случайном порядке.

См. ниже мой класс PicturePiece, а также основной класс.< /p>

package lab;

import java.awt.Graphics2D;
import java.awt.Image;
import java.io.File;
import javax.imageio.ImageIO;

public class PicturePiece {

private int IMAGE_X = 266;
private int IMAGE_Y = 224;
private final int row;
private final int col;
private Image img;
private static int count = 0;
private int id = 0;

public PicturePiece(int row, int col, File f) {
try {
this.img = ImageIO.read(f);
} catch (Exception e) {
e.printStackTrace();
}
this.row = this.IMAGE_X * row;
this.col = this.IMAGE_Y * col;
PicturePiece.count++;
this.id = PicturePiece.count;
}

public void draw(Graphics2D g2) {
g2.drawImage(this.img, this.row, this.col, null);
}

public void setPosition(int row, int col) {
this.IMAGE_X = row;
this.IMAGE_Y = col;
}

public int getXposition() {
return this.IMAGE_X;
}

public int getYposition() {
return this.IMAGE_Y;
}

public int getRow() {
return this.row;
}

public int getCol() {
return this.col;
}

public String getImage() {
return this.img.toString();
}

public static int getPictureCount() {
return PicturePiece.count;
}

public int getId() {
return this.id;
}
}


А вот мой основной класс:

/*
Найти красивое изображение из Интернета и с помощью графического редактора разбейте его
на 9 частей (например, вы можете использовать приложение Paint в Windows).
Отобразите 9 изображений в сетке 3×3 в случайном порядке. Добавьте прослушиватель мыши.
Разрешить пользователю менять местами два изображения, щелкая по ним.
Цель игры — воссоздать исходное изображение.
Отображать соответствующее сообщение в случае победы пользователя.
*/

package lab;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.util.*;

public class Puzzle {

public static void main(String[] args) throws Exception {
MyFrame frame = new MyFrame();
frame.setSize(1000, 1000);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

class MyFrame extends JFrame {

MyPanel p;

public MyFrame() {
p = new MyPanel();
add(p);

setVisible(true);

}

}

class MyPanel extends JPanel {

private ArrayList images = new ArrayList();

public MyPanel() {
this.setFocusable(true);
try {

int j = 0, k = 0, pocet = 0;
for (int i = 1; i

Подробнее здесь: https://stackoverflow.com/questions/288 ... age-method
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»