制作不带JFrame或AWT的Java窗口

问题描述 投票:2回答:3

首先,我想让您知道我在网上搜索了此内容,但找不到任何内容。我记得我曾经在上面看到一个线程,但是再也找不到它。是很久以前的。

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

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

那,为什么我想知道,甚至有可能?不需要所有的窗口,只需要窗口的基础,甚至不需要屏幕上的像素,但是不包括使用更多的库或为此而构建的类,而每个人都只是因为这是他们所知道的一切。

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

java swing window awt
3个回答
2
投票

在Java中,我们依赖于与本机OS的绑定。之所以拥有诸如AWT,Swing,JavaFX,SWT之类的抽象框架,是因为这样做的过程并不简单,尤其是当您实际上想以某种有意义的方式在这些表面上绘制时,并且当您考虑不同的情况时会变得更加复杂可用操作系统的要求。

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

您可以...

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

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

您可以...

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

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

作为对本机图形库的一些附加绑定


-1
投票

您可以只使用消息对话框。我知道我编写了一个完全不使用它们的程序。

这是我前一段时间制作的剪刀石头布程序,仅在选项窗格中运行。

java-direct3d

}

© www.soinside.com 2019 - 2024. All rights reserved.