如何将多个JLabel添加到JFrame?

时间:2016-03-12 12:39:42

标签: java swing jframe jlabel layout-manager

你好我正在制作一个游戏,我需要不止一个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);
}

}

0 个答案:

没有答案