我一直有一些無法理解的JPanel,JFrame的,和圖形類的這種整體結構,並延伸和壓倒一切和這樣。我似乎擁有了一切工作,直到我加入了圖形類,然後我的按鈕,並在等我的JPanel/JFrame中沒有露面了。我發現這與重寫或超級有關?但我真的需要一些澄清。非常感謝!Graphics類似乎是壓倒一切的JFrame/JPanel的
我已經縮小一下代碼,方便查看。
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
public class windowBuild extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private int energy = 4;
private JButton btnClaw = new JButton("Claw");
private Image bg;
private boolean loaded = false;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
windowBuild frame = new windowBuild();
frame.setVisible(true);
}
});
}
private class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String which = e.getActionCommand();
if (which.equals("Claw")) {
energy = energy - 1;
System.out
.println("Player one's dragon clawed the opponent. Dragon's energy is now at: "
+ energy);
}
}
}
public void loadImage() {
bg = new ImageIcon("C:\\res\\dragonDuelBackground.jpeg").getImage();
loaded = true;
repaint();
}
public windowBuild() {
ButtonHandler bh;
System.out.println("Starting frame...");
bh = new ButtonHandler();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 600);
contentPane = new JPanel();
contentPane.setBorder(new TitledBorder(null, "Dragon Duel",
TitledBorder.CENTER, TitledBorder.TOP, null, Color.CYAN));
setContentPane(contentPane);
contentPane.setLayout(null);
btnClaw.setBounds(273, 511, 109, 39);
contentPane.add(btnClaw);
btnClaw.addActionListener(bh);
}
//********************************************************************
// public void paint(Graphics g) {
// if (loaded) {
// g.drawImage(bg, 400, 400, null);
// }
// }
//***************Uncomment this and the code won't work anymore**********
}
的教程非常好。謝謝。 – jdawg495