- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,我知道以前曾有人问过类似的问题,但似乎没有答案可以解决我的问题。
我正在开发一个小游戏,由于某种原因,每当我尝试创建新的缓冲区策略时,java都会返回IllegalStateException。我将游戏添加到 JFrame,但仍然抛出异常,以下是添加到 JFrame 的代码:
JFrame frame;
public Window(int x, int y, int width, int height, String title, boolean focus, Main game) throws IOException {
frame = new JFrame();
frame.setLocation(x, y);
frame.setSize(new Dimension(width, height));
frame.setTitle(title);
frame.add(game);
game.start();
frame.setAutoRequestFocus(focus);
frame.setFocusable(true);
frame.setVisible(true);
}
这是创建窗口的代码(位于 Main 类中):
window = new Window(x, y, WIDTH, HEIGHT, "Title", true, this);
最佳答案
我假设 createBufferStrategy() 是在 game.start() 的帧上调用的。
IllegalStateException 可能会发生,因为 JFrame 在从 JVM 外部分配资源之前并不真正存在于计算机中(或类似的东西)。
当我自己尝试 createBufferStrategy() 时,错误提示“组件必须有一个有效的对等点”。显然,对等体是操作系统或图形管理器用作绘制自定义组件的原型(prototype)的图形组件的示例版本。
我猜想,直到您的 JFrame 在操作系统中被分配给它的对等体之前,它都没有创建 BufferStrategy 所需的所有信息——JFrame 的大小可能在内部被列为 0 × 0,也许,并且在您告诉 JVM 使 Frame 显示或“有效”之前,它不会更新为宽度 × 高度。您需要在调用 game.start() 之前执行此操作。
frame.setVisible(true) 将显示框架,并显然根据需要分配对等点。之后您可以调用 game.start() 。
如果您想在不可见的 JFrame 上调用 createBufferStrategy(),请尝试使用frame.pack(),它会验证框架中的每个组件而不显示它。注意:它还会压缩框架以适合其组件 - 如果您尚未添加任何内容,或者尚未调用 setMinimumSize(),JFrame 将缩小。
关于java - 组件必须有一个有效的对等体 - BufferStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304356/
我希望我的 C/C++ 客户端通过 SSL 验证服务器。我首先使用 从服务器下载了证书文件 openssl s_client -showcerts -connect www.openssl.org:4
我正在尝试学习使用 RSelenium。我坚持只是尝试使用 rsDriver 启动服务器。我只是想运行下面的代码并得到以下错误: rD = 8 x64 (build 9200) Matrix prod
我已经建立了一个 8 组织的单 channel 结构网络。我能够进行整个网络设置。但是设置成功后。一些 docker 实例停止监听它们各自的端口。当我做 docker ps -a它显示了一些对等节点图
如何在多个 Azure Kubernetes 集群上的 Pod 之间配置路由? 与 Google Cloud 上的 ip-alias/vpc-native 类似的内容 最佳答案 在 AKS 中,我认为
我正在尝试实现点对点连接应用程序。所以我想将 2 个以上的设备相互连接。如何为每对设备创建单独的 session 使用新的 GameKit 框架是否可以连接到 1 个以上的设备? 最佳答案 您可以使用
我一直致力于创建一个 VPC 对等连接,该连接可以使用 cloudformation 从 eu-west-1 与 us-east-1 进行对等。这是目前的云信息: AWSTemplateFormatV
我正在尝试在两个不同区域之间进行 vpc 对等互连。在这里我已经创建了资源,现在我只想将它们的 id 作为参数传递。在同一区域,我可以在两个 VPC 之间进行对等。但我在两个不同的区域收到错误,因为r
我是一名优秀的程序员,十分优秀!