java - 在没有 JFrame 或 AWT 的情况下制作 Java 窗口

标签 java swing window awt

首先,我想让你知道,我在网上搜索了那个,但找不到任何东西。 我记得我曾经在上面看到过一根线,但再也找不到了;这是很久以前的事了。

我想知道如何在没有 JFrame 或 AWT 的情况下制作我自己的窗口。 我搜索的每个地方都只显示库和预制代码,但我无法了解它在内部的工作原理。 我想知道如何在没有 Java 已经提供给我的情况下构建一个窗口。

Java 的优点和缺点是 Java 使开发人员的工作变得容易, 所以,这就是为什么我尝试使用 C、搜索汇编代码并试图找到一种方法来执行此操作,但所有方法都使用了库。

那为什么,我想知道,甚至有可能吗? 不需要所有的窗口,只需要它的底部甚至屏幕上的像素,但不需要使用更多的库或为此构建的类,每个人都使用它,因为这是他们唯一知道的.

感谢所有帮助我并回答我问题的人:)

最佳答案

在 Java 中,我们依赖于绑定(bind)到 native 操作系统。我们拥有抽象框架(如 AWT、Swing、JavaFX、SWT)的原因是因为完成此过程的过程并不简单,特别是如果您实际上想以某种有意义的方式在这些表面上绘制并且当您考虑不同的方式时会变得复杂可用操作系统的要求。

取决于您实际想要实现的目标,将取决于您将走哪条路,例如...

你可以...

使用 JWindow 或未修饰的 JFrame。这为您提供了可用的绘画表面和与现成事件队列(消息循环)的连接。

这两个窗口向您展示了一个没有装饰的“空”矩形。在处理这些类型的窗口时,您可以直接或通过自定义外观提供自己的装饰。

你可以...

使用 JNI( native )直接绑定(bind)到操作系统中,这将允许您要求操作系统创建您自己的窗口。这意味着您将负责确定如何绘制到窗口、如何处理来自操作系统的针对您的窗口的消息(事件)以及所有其他注意事项。

看看JNA Win32WindowDemo.java或者如果你真的想变得时髦,你也可以看看......

作为对 native 图形库的一些附加绑定(bind)

关于java - 在没有 JFrame 或 AWT 的情况下制作 Java 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593719/

相关文章:

javascript - 在 Javascript 中更改 ExtJS 网格高度

Android如何创建弹出窗口

java - 从包含类名的字符串实例化对象的正确方法(具有已知的父类(super class))

java - 如何在线程池队列上观察我的快速源

java 以逗号分隔的格式写入输出

java - GUI 未正确更新

java - Java 中更快的 2D 渲染

java - 使用局部变量或内联链方法更好吗?

java - 在不重新验证布局的情况下隐藏 swing 组件?

javascript:window.location 会发出任何警告吗?