JAVA为什么赢了';这个JLabel没有出现吗?

JAVA为什么赢了';这个JLabel没有出现吗?,java,Java,我正在做一系列简单的球类游戏,然后可能会进一步发展。我制作这些游戏是为了扩展我对java的知识,我正试图让这个JLabel出现,在我制作的这个行分隔符的右侧,有一张它的图片 这是密码 import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class MainMenu { public JFrame BallFrame = new JFrame(); public JPanel Ball

我正在做一系列简单的球类游戏,然后可能会进一步发展。我制作这些游戏是为了扩展我对java的知识,我正试图让这个JLabel出现,在我制作的这个行分隔符的右侧,有一张它的图片

这是密码

import javax.swing.*; import java.awt.*; import java.awt.geom.*;

public class MainMenu {

    public JFrame BallFrame = new JFrame();
    public JPanel BallPanel = new JPanel();
    public static MainMenu instance;
    Line2D verticalLine;  
    public int[] menuSize = {400, 380}; public int getMenuSize(int id) { if(id>=0 && id<=1) { return menuSize[0]; }else{ return menuSize[1]; } };

    public static void main(String[] args) {

    boolean scrollAble = Boolean.parseBoolean(args[0]);

    MainMenu menu = instance = new MainMenu();
    menu.startUp();

    /*if(scrollAble){
         JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         menu.BallFrame.setContentPane(pane);   
    } else {
         menu.BallFrame.setContentPane(menu.BallPanel); 
    }*/
    } 
    public int[] RightHandMessageBounds = {5,5}; public int getRightHandMessageBounds(int id){ if(id==1){ return RightHandMessageBounds[0]; }else{ return RightHandMessageBounds[1]; } };

    private void startUp() { 
        JLabel RightHandMessage;
        RightHandMessage = new JLabel("<html><col=000000>Welcome to the ball game!</font></html>", JLabel.CENTER);
        RightHandMessage.setLocation(getRightHandMessageBounds(1),getRightHandMessageBounds(2));
        BallFrame.setLocationRelativeTo(null);    
        BallFrame.setTitle("The Ball Game V1 - Cam"); 
        BallFrame.setSize(getMenuSize(1),getMenuSize(2));  
        BallPanel.setLayout(new FlowLayout());
        //BallPanel.setBackground(Color.WHITE);
        BallPanel.setSize(getMenuSize(1),getMenuSize(2)); 
        BallPanel.add(createVerticalSeparator());
        BallPanel.add(RightHandMessage);  
        BallFrame.setContentPane(BallPanel); 
        BallFrame.setLocationByPlatform(true);
        BallPanel.setVisible(true); 
        BallFrame.setVisible(true);


    } 

    public static JComponent createVerticalSeparator() {
        JSeparator x = new JSeparator(SwingConstants.VERTICAL);
        x.setPreferredSize(new Dimension(3,9999*100));
        return x;
    }
import javax.swing.*;导入java.awt.*;导入java.awt.geom.*;
公共类主菜单{
公共JFrame BallFrame=新JFrame();
public JPanel BallPanel=new JPanel();
公共静态主菜单实例;
Line2D轮生植物;

public int[]menuSize={400380};public int getMenuSize(int-id){if(id>=0&&id在这种情况下,您需要将代码剥离回基本代码,并尝试看看问题出在哪里,让我们先看看是否可以让标签显示出来

private void startUp() {
    JLabel RightHandMessage;
    //RightHandMessage = new JLabel("<html><col=000000>Welcome to the ball game!</font></html>", JLabel.CENTER);
    RightHandMessage = new JLabel("Welcome to the ball game!", JLabel.CENTER);
    RightHandMessage.setLocation(getRightHandMessageBounds(1), getRightHandMessageBounds(2));
    BallFrame.setLocationRelativeTo(null);
    BallFrame.setTitle("The Ball Game V1 - Cam");
    //BallFrame.setSize(getMenuSize(1), getMenuSize(2));
    BallPanel.setLayout(new FlowLayout());
    //BallPanel.setBackground(Color.WHITE);
    //BallPanel.setSize(getMenuSize(1), getMenuSize(2));
    //BallPanel.add(createVerticalSeparator());
    BallPanel.add(RightHandMessage);
    BallFrame.setContentPane(BallPanel);
    BallFrame.pack();
    BallFrame.setLocationByPlatform(true);
    //BallPanel.setVisible(true);
    BallFrame.setVisible(true);

}


看一看,了解更多想法

1-HTML中的color属性无效,可以使用标签上的setForeground来建立;2-组件上的setSize和setLocation有点无关为什么容器使用布局管理器3-使用preferredSize 399900似乎是一个巨大的过度使用,特别是当您可以使用布局管理器来实现相同的结果,而不需要使用setPreferredSizeSorry吗?有人能帮我解决这个问题吗?我正在尝试使JLabel出现。因此,您需要开始纠正这三个问题,首先删除JSepator和HTML,然后看看这是否有效分隔符的高度会将您的布局抛向另一个方向s、 这就是为什么标签不可见。为什么您希望它有999900像素高?标准高清屏幕只有1080像素高。
private void startUp() {
    JLabel RightHandMessage;
    RightHandMessage = new JLabel("<html><col=000000>Welcome to the ball game!</font></html>", JLabel.CENTER);
    RightHandMessage.setLocation(getRightHandMessageBounds(1), getRightHandMessageBounds(2));
    BallFrame.setLocationRelativeTo(null);
    BallFrame.setTitle("The Ball Game V1 - Cam");
    //BallFrame.setSize(getMenuSize(1), getMenuSize(2));
    BallPanel.setLayout(new FlowLayout());
    //BallPanel.setBackground(Color.WHITE);
    //BallPanel.setSize(getMenuSize(1), getMenuSize(2));
    //BallPanel.add(createVerticalSeparator());
    BallPanel.add(RightHandMessage);
    BallFrame.setContentPane(BallPanel);
    BallFrame.pack();
    BallFrame.setLocationByPlatform(true);
    //BallPanel.setVisible(true);
    BallFrame.setVisible(true);

}
private void startUp() {
    JLabel RightHandMessage;
    RightHandMessage = new JLabel("<html><col=000000>Welcome to the ball game!</font></html>", JLabel.CENTER);
    RightHandMessage.setLocation(getRightHandMessageBounds(1), getRightHandMessageBounds(2));
    BallFrame.setLocationRelativeTo(null);
    BallFrame.setTitle("The Ball Game V1 - Cam");
    //BallFrame.setSize(getMenuSize(1), getMenuSize(2));
    BallPanel.setLayout(new FlowLayout());
    //BallPanel.setBackground(Color.WHITE);
    //BallPanel.setSize(getMenuSize(1), getMenuSize(2));
    BallPanel.add(createVerticalSeparator());
    BallPanel.add(RightHandMessage);
    BallFrame.setContentPane(BallPanel);
    BallFrame.pack();
    BallFrame.setLocationByPlatform(true);
    //BallPanel.setVisible(true);
    BallFrame.setVisible(true);

}
public JPanel BallPanel = new JPanel() {
    @Override
    public Dimension getPreferredSize() {
        return new Dimension(400, 380);
    }
};

//...

private void startUp() {
    JLabel RightHandMessage;
    RightHandMessage = new JLabel("<html><col=000000>Welcome to the ball game!</font></html>", JLabel.CENTER);
    RightHandMessage.setLocation(getRightHandMessageBounds(1), getRightHandMessageBounds(2));
    BallFrame.setLocationRelativeTo(null);
    BallFrame.setTitle("The Ball Game V1 - Cam");
    BallPanel.setLayout(new GridBagLayout());

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.VERTICAL;

    BallPanel.add(createVerticalSeparator(), gbc);

    gbc.gridx = 1;
    gbc.weighty = 0;
    gbc.fill = GridBagConstraints.NONE;
    gbc.anchor = GridBagConstraints.NORTH;
    BallPanel.add(RightHandMessage, gbc);

    BallFrame.setContentPane(BallPanel);
    BallFrame.pack();
    BallFrame.setLocationByPlatform(true);
    //BallPanel.setVisible(true);
    BallFrame.setVisible(true);

}