gpt4 book ai didi

java - "Internal error: couldn' t 创建组件对等”

转载 作者:行者123 更新时间:2023-12-01 14:35:31 25 4
gpt4 key购买 nike

当我开始游戏时,我一直间歇性地遇到这个错误:

Exception in thread "main" java.lang.InternalError: couldn't create component peer
at sun.awt.windows.WComponentPeer.checkCreation(Unknown Source)
at sun.awt.windows.WComponentPeer.<init>(Unknown Source)
at sun.awt.windows.WCanvasPeer.<init>(Unknown Source)
at sun.awt.windows.WPanelPeer.<init>(Unknown Source)
at sun.awt.windows.WWindowPeer.<init>(Unknown Source)
at sun.awt.windows.WFramePeer.<init>(Unknown Source)
at sun.awt.windows.WToolkit.createFrame(Unknown Source)
at java.awt.Frame.addNotify(Unknown Source)
at java.awt.Window.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at Joehot200.TerrainDemo.setUpDisplay(TerrainDemo.java:3569)
at Joehot200.TerrainDemo.startGame(TerrainDemo.java:3640)
at StartScreenExperiments.Test2.resartTDemo(Test2.java:55)
at StartScreenExperiments.Test2.main(Test2.java:41)

我无法重现它,它似乎只是在我开始游戏时随机发生 - 有时,它开始正常,而其他时候,它有那个错误。

我正在使用以下代码启动显示:

private void setUpDisplay() {
//System.setProperty("org.lwjgl.librarypath", new File("D:/Downloads/mcp/ship/Ship/lib/natives-win").getAbsolutePath());
try {
DisplayMode displayMode = null;
DisplayMode[] modes = Display.getAvailableDisplayModes();

for (int i = 0; i < modes.length; i++)
{
if (modes[i].isFullscreenCapable())
{
displayMode = modes[i];
}
}
if (displayMode == null){
displayMode = new DisplayMode(100, 100);
}
displayMode = Display.getDesktopDisplayMode();
//Display.setDisplayModeAndFullscreen(new DisplayMode(200, 200));
//Display.setDisplayMode(new DisplayMode(WINDOW_DIMENSIONS[0], WINDOW_DIMENSIONS[1]));
Display.setDisplayMode(displayMode);
Display.setResizable(true);
Display.setTitle("Pirate game");
//Display.setFullscreen(true);
try {Thread.sleep(3000);} catch (InterruptedException e1) {}

frame = new JFrame();

Canvas canvas = new Canvas();
frame.add(canvas);
frame.setSize(500, 500);
frame.setVisible(true);
try {
try {Thread.sleep(3000);} catch (InterruptedException e1) {}
Display.setParent(canvas);

Display.create();

} catch (LWJGLException e) {
e.printStackTrace();
}
try {Thread.sleep(3000);} catch (InterruptedException e1) {}
frame.setVisible(true);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.repaint();

} catch (LWJGLException e) {
e.printStackTrace();
//cleanUp(true);
}
}

显然,这与正在创建的 JFrame 有关(因为如果我在没有 JFrame 的情况下进行显示,它工作正常),但是我目前无法解决该问题(不放弃 JFrame,这是我做不到的) .

我不确定这个问题是否与 LWJGL/OpenGL 有任何关系,所以我还是这样标记了它。

最佳答案

来自问题 JDK-8151688 :

The most probable cause of the issue: Windows rejects a new window creation because the maximum number of windows is reached.

关于java - "Internal error: couldn' t 创建组件对等”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28262742/

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