#java #random #random-sample #image-viewer
#java #Случайный #просмотрщик изображений
Вопрос:
Я пытаюсь создать средство просмотра изображений, идея которого заключается в том, что средство просмотра отобразит одно изображение, случайную кнопку и кнопку сброса, чтобы пользователь мог нажать кнопку и случайным образом просмотреть список разных изображений. Я могу открыть средство просмотра, но не могу заставить средство просмотра поворачивать изображения. вот код. Я был бы благодарен за любую помощь
import java.awt.*;
import javax.swing.*;
public class CreateImage extends JFrame {
private JButton jbtRandom = new JButton("Random");
private JButton jbtReset = new JButton ("Reset");
public CreateImage() {
JPanel panel = new JPanel();
panel.add(jbtRandom);
panel.add(jbtReset);
Image image1 = new ImageIcon("kobe.jpg").getImage();
Image image2 = new ImageIcon("joe.jpg").getImage();
Image image3 = new ImageIcon("sidney.jpg").getImage();
Image image4 = new ImageIcon("bugs.gif").getImage();
Image image5 = new ImageIcon("mac.jpg").getImage();
Image image6 = new ImageIcon("snooki.jpg").getImage();
setLayout(new GridLayout(2, 0, 5, 5));
add(new ImageViewer(image1));
/*add(new ImageViewer(image2));// <== extra lines form first viewer attempt
add(new ImageViewer(image3)); //, <== which showed all images at once.
add(new ImageViewer(image4));// <== only need one image and to flip
add(new ImageViewer(image5));// <== to a random image
add(new ImageViewer(image6));// <== */
}
public class ImageViewer extends JPanel {
private java.awt.Image image;
private boolean stretched = true;
private int xCoordinate;
private int yCoordinate;
public ImageViewer() {
}
public ImageViewer(Image image) {
this.image = image;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (image != null)
if (isStretched())
g.drawImage(image, xCoordinate, yCoordinate, getWidth(), getHeight(), this);
else
g.drawImage(image, xCoordinate, yCoordinate, this);
}
public java.awt.Image getImage() {
return image;
}
public void setImage(java.awt.Image image) {
this.image = image;
repaint();
}
public boolean isStretched() {
return stretched;
}
public void setStretched(boolean stretched) {
this.stretched = stretched;
repaint();
}
public int getXCoordinate() {
return xCoordinate;
}
public void setXCoodinate(int xCoordinate) {
this.xCoordinate = xCoordinate;
}
public int getYCoordinate() {
return xCoordinate;
}
public void setYCoodinate(int yCoordinate) {
this.yCoordinate = yCoordinate;
repaint();
}
}
public static void main(String[] args) {
JFrame frame = new CreateImage();
frame.setTitle("Random Image-Click The Button");
frame.add(new JButton("Random"));
frame.add(new JButton("Reset"));
frame.setSize(400, 320);
frame.setLocationRelativeTo(null); //Center Frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Ответ №1:
Вот несколько шагов, которые вам нужно предпринять, чтобы начать:
1) Вместо того, чтобы просто создавать и выбрасывать изображения. Поместите их куда-нибудь — например, в список или карту. 2) Добавьте обработчик событий к вашей случайной кнопке. 3) Нажав на эту кнопку, выберите и покажите новое изображение из вашего списка или карты.
Как только вы это сделаете, задайте другой, более конкретный вопрос, если вы все еще застряли. На данный момент вы довольно далеки от достижения своей конечной цели, поэтому сейчас просто сосредоточьтесь на реагировании на событие пользователя (нажатие ваших кнопок) для начала.
Обратитесь к этому, чтобы начать.