gpt4 book ai didi

java - JPanel、BorderLayout 工作错误

转载 作者:行者123 更新时间:2023-11-30 08:00:19 25 4
gpt4 key购买 nike

好吧,我知道我做了什么,但现在每次我启动程序时,我的屏幕都会分成右侧和左侧,我希望它们合并,然后将红色放在屏幕的东侧,就像......分成 2 个面板..我正在尝试为我的 lwjgl 游戏制作一个世界编辑器,我想制作一个面板,将我的游戏渲染在带有红色屏幕的区域上,但我只是无法将其放在正确的位置这是一张图片 - http://prntscr.com/85o1es正如你所看到的,由于某种原因,那里有 2 个屏幕,我将面板涂成了灰色,你可以看到面板仅位于右侧......显示器的渲染很好,红色背景和黑色模型正方形如果有人知道为什么我的屏幕 split 请帮忙。

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);

这个

frame.add(panel,BorderLayout.CENTER);

为什么将位置设置为BorderLayout.EAST?将其设置为中心。

您在左侧看到的拆分面板是您的 jframe 。因为您已将边框布局约束设置为东,所以您的面板位于右侧。如果你不确定放

frame.getContentPane().setBackground(Color.green);

你会看到它是框架。

<小时/>编辑......

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

所以像您已经完成的那样将面板添加到 East

 frame.add(panel,BorderLayout.EAST);

将面板布局设置为边框布局

panel.setLayout(new BorderLayout());

并将 Canvas 添加到面板的南边

panel.add(glCanvas,BorderLayout.SOUTH);

关于java - JPanel、BorderLayout 工作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com