【问题标题】:Things on my JPanel are not showing up. JAVA我的 JPanel 上的东西没有显示出来。 JAVA
【发布时间】:2016-08-22 16:03:19
【问题描述】:

我正在制作一个小游戏来享受乐趣,当我将 JPanel 添加到 JFrame 时,没有显示我在其他班级中绘制的内容。

这是我的主要课程

package Game;

import java.awt.*;
import javax.swing.*;
import Game.Player;


public class Frame {
    static JFrame f = new JFrame("xx");
    public static JLabel points = new JLabel();
    public static void main(String[] args) {

        Player pl = new Player();
        JPanel p = new JPanel();
        points.setFont(new Font("Verdana",1,20));

        p.add(pl);
        p.add(points);


        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setResizable(false);
        f.setSize(800, 800);
        f.setTitle("Box Game");
        f.add(p);           


        f.setVisible(true);
    }
}

我很难弄清楚,所以有人可以帮助我...谢谢!

【问题讨论】:

  • 我添加了JLabel myJLabel = new JLabel("My JLabel"); p.add(myJLabel);,已经显示出来了。
  • 这个类工作得很好,标签没有显示,因为你没有在里面放任何东西,如果播放器类应该显示一些东西,你可能有问题。
  • 您需要创建并发布minimal reproducible example -- 请阅读链接。

标签: java swing jframe jpanel


【解决方案1】:

没有显示我在其他班级中绘制的内容。

您正在向面板添加组件。 JPanel 默认使用 FlowLayout。 FlowLayout 尊重您添加到面板的组件的首选大小。如果组件不绘制,那么组件的首选大小可能是 (0, 0)。

没有显示我在其他课程中绘制的内容

如果您正在进行自定义绘制,那么您需要确保覆盖该类的 getPreferredSize() 方法以返回大小,以便布局管理器可以完成其工作。

阅读 Custom Painting 上的 Swing 教程部分,了解更多信息和工作示例,以帮助您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 2014-12-19
    相关资源
    最近更新 更多