[英]JButton needs to display array of images
我有一組存儲在數組中的圖像,我需要像幻燈片一樣顯示它們。 下一個和上一個有兩個JButton允許用戶查看圖像。 但是我無法讓按鈕工作。 有什么建議嗎?
謝謝
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
public class slides extends JPanel implements ActionListener {
// Data Field
private final ImageIcon imageArray[];
private ImageIcon image;
JButton nextButton;
JButton prevButton;
int page = 0;
int nextPage = page + 1;
int prevPage = page - 1;
int numOfSlides = 28;
// Obtains and stores slides in imageArray
public slides() {
imageArray = new ImageIcon[numOfSlides];
for (int i = 0; i < imageArray.length; i++) {
imageArray[i] = new ImageIcon("Slide " + (i + 1) + ".png");
}
}
// Displays slides
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
boolean began = true;
// creates next button
nextButton = new JButton("next");
nextButton.setBounds(400, 574, 70, 30);
nextButton.addActionListener(this);
add(nextButton);
// creates previous button
prevButton = new JButton("previous");
prevButton.setBounds(0, 574, 85, 30);
prevButton.addActionListener(this);
add(prevButton);
// displays slide 1
if (began == true) {
image = imageArray[page];
image.paintIcon(this, g, 0, 0);
began = false;
}
// displays other slides based on preference
if (page == nextPage) {
image = imageArray[page + 1];
image.paintIcon(this, g, 0, 0);
nextPage = page + 1;
prevPage = page - 1;
}
if (page == prevPage) {
nextPage = page + 1;
prevPage = page - 1;
image = imageArray[page - 1];
image.paintIcon(this, g, 0, 0);
}
// Removes buttons accordingly
if(page == imageArray.length - 1) {
remove(nextButton);
}
if(page == 0){
remove(prevButton);
}
}
@Override
public void actionPerformed(ActionEvent event) {
if (event.getSource() == nextButton) {
page++;
image = imageArray[page];
}
if (event.getSource() == prevButton) {
page--;
image = imageArray[page];
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.