Я хочу иметь доступен массив изображений, поэтому при нажатии кнопки он проходит через генератор случайных чисел и выводит число, которое случайным образом извлекает изображение из массива. Не волнуйтесь, я надеюсь, что у меня хорошее образование в области генерации случайных чисел.
и да, я понимаю, что это настоящий бардак. За последние пару недель я несколько раз пытался это понять (начал с пары часов в день, чтобы оставаться в здравом уме, заканчивая непрерывными 72-часовыми сеансами, просыпаясь ото сна с разными идеями, которые можно попробовать)
Вот некоторые разделы моего кода, я включаю в них то, что считаю необходимым, поскольку я написал много, и навигация — это кошмар.
Код: Выделить всё
Код: Выделить всё
`private JPanel topRow, leftPane, mainPane, bottomRow, mPane1;
private JButton btnOne, btnTen, btnHun, btnTho;
private JTextArea mPane2, test;
private String imagePath, name;
private ImageIcon image;
public WSgui() {
super("Character Wish Simulator");
this.setSize(900, 600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());
this.mainPane = new JPanel();
this.mainPane.setBackground(Color.ORANGE);
this.mainPane.setMinimumSize(new Dimension(650, 400));
this.mainPane.setBorder(new EmptyBorder(40,40,40,40));
this.mainPane.setLayout(new BorderLayout());
//buttons
this.btnOne = new JButton("x1 wish");
this.btnOne.setSize(200, 100);
//setting panes for main
this.mPane1 = new JPanel();
int xSize = ((int) mainPane.getSize().getWidth());
int ySize = ((int) mainPane.getSize().getHeight());
int height = (int)(Math.round(ySize * 0.80));
int width = (int)(Math.round(xSize * 0.80));
this.mPane1.setPreferredSize(new Dimension(width, height));
this.mPane1.setMinimumSize(new Dimension(xSize, ySize));
this.mPane1.setMaximumSize(new Dimension(1000, 1000));
this.mPane2 = new JTextArea();
this.mPane2.setText("This should be below the picture");
this.mPane2.setFont(new Font("Dialog", Font.PLAIN, 15));
this.mPane2.setMaximumSize(new Dimension(width, 50));
this.mPane2.setWrapStyleWord(true);
this.mPane2.setLineWrap(true);
this.mPane2.setEditable(false);
this.btnTen = new JButton("x10 wish");
this.btnTen.setSize(200, 50);
this.btnTen.addActionListener(this);
//This idea (action listener) came from StackOverflow, but sadly is not working
this.btnHun = new JButton("x100 wish");
this.btnHun.setSize(200, 50);
this.btnHun.addActionListener(this);
this.btnTho = new JButton("x1000 wish");
this.btnTho.setSize(200, 50);
this.btnTho.addActionListener(this);
//Test image for Main Pane
image = new ImageIcon(bnr);//some more ideas I found
JLabel image5 = new JLabel(image);
JLabel image2 = new JLabel(new ImageIcon(lpImage));
JLabel image3 = new JLabel(new ImageIcon(mImage));
JLabel image4 = new JLabel(new ImageIcon(xtra));
this.mPane1.add(image3);
this.leftPane.add(image2);
this.topRow.add(image5);
this.bottomRow.add(image4);
this.mainPane.add(this.mPane1, BorderLayout.CENTER);
this.mainPane.add(this.mPane2, BorderLayout.SOUTH);
this.btnOne.addActionListener(e -> image5.setIcon(images[3]));
ImageIcon[] images = new ImageIcon[] {//my pathetic attempt at an array
new ImageIcon("img/t1.png"), new ImageIcon("img/t2.png"), new ImageIcon("img/t3.jpg"),
new ImageIcon("img/t4.jpg"), new ImageIcon("img/t5.png")
};
String[] image8 = new String[] {
"img/t1.png"//idk how to explain this one
};
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnOne) {
String image9 = image8[0];//and this is what I struggle with
ImageIcon icon9 = new ImageIcon(image9);
icon9.getImage().flush();
image.setIcon(icon9);
}
}
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/792 ... is-pressed
Мобильная версия