你好我正在制作一个游戏,我需要不止一个JLabel(作为标题显示),所以我尝试添加一个JLabel并且它有效。但是当我尝试添加另一个时它就不会出现!有人可以帮帮我吗 另外,我使用的是jframe而不是jpanel,因为我还没有找到确切的内容!
这个问题与其他问题不同,因为我使用的是不同类型的代码(我不使用jpanel)
我的代码如下:
package main;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MainLoop {
public static void wait(int timeInSeconds){
int t = (timeInSeconds * 1000);
try{
Thread.sleep(t);
}catch(Exception e){
e.printStackTrace();
}
}
public static JFrame frame = new JFrame("Defend Java Game");
public static void makeFrame(Dimension size){
System.out.println("generating jframe");
frame.setLocation(100, 100);
frame.setVisible(true);
frame.setSize(size);
frame.setResizable(false);
frame.getContentPane().setBackground(Color.YELLOW);
System.out.println("jframe has been generated");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// generates the components
JLabel label = new JLabel("Hello and welcome to defend java", JLabel.CENTER);
JButton start = new JButton("start");
start.setBounds(100, 100, 200, 25);
JButton exit = new JButton("exit");
exit.setBounds(100, 50, 200, 25);
//adds the components
frame.add(exit);
frame.add(start);
frame.add(label);
//button testers///////////////////////////////////////////
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
frame.remove(label);
frame.remove(exit);
frame.remove(start);
System.out.println("button is clicked");
System.out.println("the game will start now");
frame.getContentPane().setBackground(Color.BLUE);
run();
}
});
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
close();
}
});
/////////////////////////////////////////////////////////////
}
public static void main(String[] args) {
makeFrame(new Dimension(640,480));
}
public static void run(){
System.out.println("run method active");
int lives = 3;
JLabel livesDisplay = new JLabel("lives: " + lives, JLabel.CENTER);
frame.add(livesDisplay);
}
public static void close(){
System.out.println("System exited");
System.exit(1);
}
}