我對圖形用戶界面(和Java,在不到3個月前開始)非常新穎,需要一些GUI幫助,我正在做一個家庭作業。我來這裏是作爲最後的手段,因爲我無法弄清楚這個問題,並且已經花了好幾個小時來研究它。圖形用戶界面一次顯示一個數組中的每個圖像
我需要製作一個圖形用戶界面,並通過ImageIcons數組並逐個顯示每個ImageIcon(擦除顯示的前一個)。我已經將它展現在顯示我的第一張圖片的地方,但是我的JButton完全沒有做任何事情,而且我也不知道如何讓這件事情起作用。我瀏覽了我的教科書以及我的老師給出的許多在線資源和例子,但仍然一無所獲。我知道,一旦我看到一個解決方案,我會覺得很愚蠢,但現在,我很累,而且我開始不思考,因爲我一直這麼做。請幫助= D!
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
public class HangmanPanel extends JPanel {
private JLabel imageLabel;
private ImageIcon[] images;
private JButton nextImage;
private int imageNumber;
public HangmanPanel() {
nextImage = new JButton("Next Image");
nextImage.setEnabled(true);
nextImage.setToolTipText("Press for next image.");
nextImage.addActionListener(new ButtonListener());
images = new ImageIcon[8];
// Populating the array
{
images[0] = new ImageIcon("hangman0.png");
images[1] = new ImageIcon("hangman1.png");
images[2] = new ImageIcon("hangman2.png");
images[3] = new ImageIcon("hangman3.png");
images[4] = new ImageIcon("hangman4.png");
images[5] = new ImageIcon("hangman5.png");
images[6] = new ImageIcon("hangman6.png");
images[7] = new ImageIcon("hangman7.png");
}
setBackground(Color.white);
add(nextImage);
int count = 0;
while (images.length > count)
imageLabel = new JLabel (images[imageNumber]);
count++;
imageNumber++;
add (imageLabel);
}
public void paint(Graphics page) {
super.paint(page);
}
private class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent event) {
imageNumber++;
}
}
}
1)不要覆蓋'漆()'基於'JPanel',超越'的paintComponent一個Swing( )'而不是。 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-04-06 05:47:41