关于绝对定位的困惑

时间:2018-04-22 22:48:54

标签: java swing layout-manager

我是图形用户界面的初学者,我正在开发一个游戏项目。写作GameMenu的I类是一个JComponent,它的目的是在我的游戏中我将制作一个GameMenu对象,它将处理游戏的加载,只是一个视觉表示。但是,我没有使用布局管理器,而是决定使用绝对定位进行GameMenu加载,其中我有一个ProgressBar和一个Frame。我将Frame的大小设置为500乘500,ProgressBar也是500乘500的维度,我认为结果是Frame和ProgressBar应该是相同的大小,但是当我运行时代码ProgressBar看起来比我的Frame稍大。因此,我必须调整Frame的大小才能看到整个ProgressBar。我不知道我的代码是错误的,还是说如果你自己定位,ProgressBar的大小似乎有点大。如何在不调整大小的情况下将Frame和ProgressBar设置为相同的大小?

public class GameMenu extends JComponent
{
    private JProgressBar loadbar;
    private JFrame gui;

    public GameMenu()
    {
        loadbar=new JProgressBar();

        gui=new JFrame();
    }
    public void init()
    {
        gui.setLayout(null);

        loadbar.setStringPainted(true);

        gui.setBounds(0,0,500,500);

        loadbar.setBounds(0,0,500,500);

        loadbar.setVisible(true);

        gui.getContentPane().add(loadbar);

        gui.setVisible(true);

        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        gui.setLocationRelativeTo(null);


        for(int i=0;i<=100;i++)
        {
            loadbar.setValue(i);

            try
            {
                Thread.sleep(15);
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    }
}

0 个答案:

没有答案