好吧,IDC,我做了什么,但是现在每次启动程序时,我的屏幕都会分成左右两边,我希望它们合并,然后将红色放在屏幕的东侧,就像..分成2个部分面板..
我正在尝试为我的lwjgl游戏制作世界编辑器,我想制作一个面板,该面板将游戏显示在红色屏幕上,但是我无法将其放置在正确的位置
这是一张图片-http://prntscr.com/85o1es
如您所见,由于某些原因,那里有2个屏幕,我将面板着色为灰色,并且您可以看到面板仅在右侧...显示效果很好,红色背景,黑色模型广场
如果有人知道为什么我的屏幕拆分了plz帮助。
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);
然后您会看到它是框架。
编辑.......
根据您的评论,您想将画布放在右下角
所以
完成操作后将面板添加到East
frame.add(panel,BorderLayout.EAST);
将面板布局设置为
border layout
panel.setLayout(new BorderLayout());
并将画布添加到面板的南部
panel.add(glCanvas,BorderLayout.SOUTH);