Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 杰帕内尔,边界布局错误_Java_Swing_Jpanel_Render_Jlabel - Fatal编程技术网

Java 杰帕内尔,边界布局错误

Java 杰帕内尔,边界布局错误,java,swing,jpanel,render,jlabel,Java,Swing,Jpanel,Render,Jlabel,好吧,我做了什么,但现在每次我启动程序,我的屏幕就分为右侧和左侧,我希望它们合并,只是把红色放在屏幕的东侧,就像。。分成两个面板。。 我正在尝试为我的lwjgl游戏制作一个世界编辑器,我想制作一个面板,在上面有红色屏幕的区域渲染我的游戏,但我就是不能把它放在正确的位置 这是一张照片- 正如你所看到的,由于某些原因,那里有两个屏幕,我把面板涂成灰色,你可以看到面板只在右边。。。显示器的渲染为精细的红色背景和黑色正方形模型 如果有人知道我的屏幕为什么会分裂,请提供帮助 public class Pa

好吧,我做了什么,但现在每次我启动程序,我的屏幕就分为右侧和左侧,我希望它们合并,只是把红色放在屏幕的东侧,就像。。分成两个面板。。 我正在尝试为我的lwjgl游戏制作一个世界编辑器,我想制作一个面板,在上面有红色屏幕的区域渲染我的游戏,但我就是不能把它放在正确的位置 这是一张照片- 正如你所看到的,由于某些原因,那里有两个屏幕,我把面板涂成灰色,你可以看到面板只在右边。。。显示器的渲染为精细的红色背景和黑色正方形模型 如果有人知道我的屏幕为什么会分裂,请提供帮助

public class Panel
{

    private static JFrame frame;
    private static JPanel panel;
    private static Canvas glCanvas = new Canvas();
    private JMenuBar mb = new JMenuBar();
    private static Loader loader;
    private static Renderer renderer;


    public static void gui()
    {
        panel = new JPanel();
        frame = new JFrame("TEST");
        frame.setVisible(true);
        frame.setSize(1280, 1024);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel.setBackground(Color.GRAY);
        frame.add(panel,BorderLayout.EAST);
    }

    public static void main(String[] args)
    {
        gui();
        setCanvas();
        DisplayManager.createDisplay();
        loader = new Loader();
        renderer = new Renderer();

        float[] vertices =
        { -0.5f, 0.5f, 0f, -0.5f, -0.5f, 0f, 0.5f, -0.5f, 0f,

        0.5f, -0.5f, 0f, 0.5f, 0.5f, 0f, -0.5f, 0.5f, 0f };

        RawModel model = loader.loadToVAO(vertices);

        while (!Display.isCloseRequested())
        {
            renderer.prepare();
            renderer.render(model);
            DisplayManager.updateDisplay();
        }

        DisplayManager.closeDisplay();

    }

    private static void setCanvas()
    {
        glCanvas.setIgnoreRepaint(true);
        glCanvas.setSize(720, 480);
        panel.add(glCanvas);
        try
        {
            Display.setParent(glCanvas);
        }
        catch (LWJGLException e)
        {
            e.printStackTrace();
        }
    }

}
将此更改为

 frame.add(panel,BorderLayout.EAST);
这个

为什么要将位置设置为
BorderLayout.EAST
?。把它调到中间

在左侧看到的分割面板是jframe。因为您已将border layout Constraint设置为east,所以面板已定位在右侧。 如果你不确定

frame.getContentPane().setBackground(Color.green);
你会看到它的框架


编辑

根据您的评论,您希望将画布放置在右下角

所以 将面板添加到东部,就像您已经完成的一样

 frame.add(panel,BorderLayout.EAST);
将面板布局设置为
边框布局

panel.setLayout(new BorderLayout());
并将画布添加到面板的南部

panel.add(glCanvas,BorderLayout.SOUTH);

我想这就是我在东区展示的方式。。。例如,我希望我的显示器位于右侧南部区域。。我该怎么做?@noam什么?显示在右边的南部区域?你能澄清一下吗。正如你所看到的,我在面板上有一个灰色,我有一个红色的方块来渲染我的游戏(不是自动取款机,但将来会),所以我想把那个显示器(代码中称为显示器)放在游戏的右边南部区域window@noam是否要将黑色面板放置在红色画布之外?或者你想定位在红色面板的右下方。对不起,红色画布内的黑色正方形是我的模型,没问题。它在那里的渲染很好,我想要的是把红色画布放在屏幕的右边南部区域(灰色区域)。
panel.add(glCanvas,BorderLayout.SOUTH);