[英]Multiple screen java applet has buttons that don't work
我正在制作一個有2個屏幕,一個標題和一個游戲屏幕的程序。 如果用戶單擊“播放”,則可以進入下一個屏幕。 但是,在下一個屏幕上,如果用戶嘗試按下“繼續前進”按鈕,則什么也不會發生。 我想知道為什么會這樣,是否有人可以修復它。 謝謝,這是我的代碼:
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ZombieDice extends Applet implements ActionListener
{
Panel p_card;
Panel card1, card2;
CardLayout cdLayout = new CardLayout ();
int shotguns = 0;
int brains = 0;
int p1b = 0;
int p2b = 0;
JLabel pic1;
JLabel pic2;
JLabel pic3;
public void init ()
{
p_card = new Panel ();
p_card.setLayout (cdLayout);
screen1 ();
screen2 ();
resize (600, 500);
setLayout (new BorderLayout ());
add ("Center", p_card);
}
public void screen1 ()
{
card1 = new Panel ();
JLabel logo = new JLabel (createImageIcon ("logo.jpg"));
JButton play = new JButton (createImageIcon ("play.jpg"));
play.setActionCommand ("2");
play.addActionListener (this);
JButton quit = new JButton (createImageIcon ("quit.jpg"));
quit.setActionCommand ("quit");
quit.addActionListener (this);
card1.add (logo);
card1.add (play);
card1.add (quit);
setBackground (Color.red);
p_card.add ("1", card1);
}
public void screen2 ()
{
card2 = new Panel ();
JLabel player = new JLabel ("Player 1 ");
player.setFont (new Font ("Vinque", Font.BOLD, 20));
JLabel shotgun = new JLabel ("Shotguns: " + shotguns + " ");
shotgun.setFont (new Font ("Vinque", Font.BOLD, 14));
JLabel brain = new JLabel ("Braaainss: " + brains);
brain.setFont (new Font ("Vinque", Font.BOLD, 14));
JLabel p1brains = new JLabel ("Player 1 Ate: " + p1b + " Braaiinnss ");
p1brains.setFont (new Font ("Vinque", Font.BOLD, 16));
JLabel p2brains = new JLabel ("Player 2 Ate: " + p2b + " Braaiinnss");
p2brains.setFont (new Font ("Vinque", Font.BOLD, 16));
pic1 = new JLabel (createImageIcon ("zombie.jpg"));
pic2 = new JLabel (createImageIcon ("zombie.jpg"));
pic3 = new JLabel (createImageIcon ("zombie.jpg"));
JButton keepgoing = new JButton (createImageIcon ("keepgoing.jpg"));
keepgoing.addActionListener (this);
keepgoing.setActionCommand ("kg");
JButton stopscore = new JButton (createImageIcon ("stopAndScore.jpg"));
keepgoing.addActionListener (this);
keepgoing.setActionCommand ("ss");
JButton nextplayer = new JButton (createImageIcon ("nextPlayer.jpg"));
nextplayer.addActionListener (this);
nextplayer.setActionCommand ("np");
card2.add (player);
card2.add (shotgun);
card2.add (brain);
card2.add (p1brains);
card2.add (p2brains);
card2.add (pic1);
card2.add (pic2);
card2.add (pic3);
card2.add (keepgoing);
card2.add (stopscore);
card2.add (nextplayer);
p_card.add ("2", card2);
}
public void actionPerformed (ActionEvent e)
{
if (e.getActionCommand ().equals ("2"))
cdLayout.show (p_card, "2");
if (e.getActionCommand ().equals ("kg"))
{
int n = (int) ((Math.random () * 9) + 1);
{
if (n == 1)
pic1.setIcon (createImageIcon ("greenBrain.jpg"));
else if (n == 2)
pic1.setIcon (createImageIcon ("greenFootPrints.jpg"));
else if (n == 3)
pic1.setIcon (createImageIcon ("greenShotGun.jpg"));
else if (n == 4)
pic1.setIcon (createImageIcon ("redBrain.jpg"));
else if (n == 5)
pic1.setIcon (createImageIcon ("redFootPrints.jpg"));
else if (n == 6)
pic1.setIcon (createImageIcon ("redShotGun.jpg"));
else if (n == 7)
pic1.setIcon (createImageIcon ("yellowBrain.jpg"));
else if (n == 8)
pic1.setIcon (createImageIcon ("yellowFootPrints.jpg"));
else
pic1.setIcon (createImageIcon ("yellowShotGun.jpg"));
}
int n2 = (int) ((Math.random () * 9) + 1);
{
if (n2 == 1)
pic2.setIcon (createImageIcon ("greenBrain.jpg"));
else if (n2 == 2)
pic2.setIcon (createImageIcon ("greenFootPrints.jpg"));
else if (n2 == 3)
pic2.setIcon (createImageIcon ("greenShotGun.jpg"));
else if (n2 == 4)
pic2.setIcon (createImageIcon ("redBrain.jpg"));
else if (n2 == 5)
pic2.setIcon (createImageIcon ("redFootPrints.jpg"));
else if (n2 == 6)
pic2.setIcon (createImageIcon ("redShotGun.jpg"));
else if (n2 == 7)
pic2.setIcon (createImageIcon ("yellowBrain.jpg"));
else if (n2 == 8)
pic2.setIcon (createImageIcon ("yellowFootPrints.jpg"));
else
pic2.setIcon (createImageIcon ("yellowShotGun.jpg"));
}
int n3 = (int) ((Math.random () * 9) + 1);
if (n3 == 1)
pic3.setIcon (createImageIcon ("greenBrain.jpg"));
else if (n3 == 2)
pic3.setIcon (createImageIcon ("greenFootPrints.jpg"));
else if (n3 == 3)
pic3.setIcon (createImageIcon ("greenShotGun.jpg"));
else if (n3 == 4)
pic3.setIcon (createImageIcon ("redBrain.jpg"));
else if (n3 == 5)
pic3.setIcon (createImageIcon ("redFootPrints.jpg"));
else if (n3 == 6)
pic3.setIcon (createImageIcon ("redShotGun.jpg"));
else if (n3 == 7)
pic3.setIcon (createImageIcon ("yellowBrain.jpg"));
else if (n3 == 8)
pic3.setIcon (createImageIcon ("yellowFootPrints.jpg"));
else
pic3.setIcon (createImageIcon ("yellowShotGun.jpg"));
}
}
protected static ImageIcon createImageIcon (String path)
{
java.net.URL imgURL = ZombieDice.class.getResource (path);
if (imgURL != null)
{
return new ImageIcon (imgURL);
}
else
{
System.err.println ("Couldn't find file: " + path);
return null;
}
}
}
也許您應該仔細看看這兩個街區...
JButton keepgoing = new JButton("kg", createImageIcon("keepgoing.jpg"));
keepgoing.addActionListener(this);
keepgoing.setActionCommand("kg");
JButton stopscore = new JButton("ss", createImageIcon("stopAndScore.jpg"));
keepgoing.addActionListener(this);
keepgoing.setActionCommand("ss");
看到有趣的事了嗎?
JComponent#add(String, Component)
- “此方法從1.1開始已過時。請改用add(Component,Object)方法。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.