Java:JLabel未添加到JFrame上

Java:JLabel未添加到JFrame上,java,Java,为什么我不能在屏幕上看到标签。这是我的代码: class Guide extends JComponent { public static void main(String[] args) { Guide guide = new Guide(); JFrame frame = new JFrame("Pong Game's Guide"); frame.add(guide); fram

为什么我不能在屏幕上看到标签。这是我的代码:

class Guide extends JComponent {
        public static void main(String[] args) {
            Guide guide = new Guide();
            JFrame frame = new JFrame("Pong Game's Guide");
            frame.add(guide);
            frame.pack();
            frame.setSize(600,500);
            frame.setVisible(true);
            frame.setLocationRelativeTo(null);
            frame.setResizable(false);

            JLabel guideLabel = new JLabel();
            guideLabel.setText("GUIDE");
            guideLabel.setFont(new Font("Serif",Font.BOLD, 20));
            guideLabel.setForeground(new Color(255,0,0));
            guideLabel.setBounds(290,25,50,20);        
            frame.add(guideLabel);
        }

        public void paintComponent(Graphics g) {
            g.setColor(new Color(150,255,150));
            g.fillRect(0,0,690,590);        
        }
    }

我做错了什么?请提供帮助。

尝试将标签添加到框架中,然后将框架的可见性设置为true

  • 在添加标签之前,已使窗口可见。您需要
    revalidate
    repaint
    容器
  • JFrame
    默认情况下使用
    BorderLayout
    ,默认情况下,该布局只允许在5个可能导致问题的可用位置中的每个位置布置单个组件。最好将其添加到
    guide

  • 您必须先将
    JLabel
    添加到帧中,然后将其打包并设置为可见。