我正在开发一个在嵌入式系统中使用Java的项目。我有用于屏幕和触摸输入的驱动程序,以及用于文本输入的虚拟键盘。我的屏幕驱动程序有一个Graphics2D
对象可以绘制到repaint(Rectangle)
更新方法。同样,触摸驱动程序能够为听众生成MouseEvents
。为定制驱动程序创建GraphicsDevice
现在我正在使用直接绘制到屏幕上。这很好,但我真正想要的是允许我的库的用户创建JFrame并使用普通的Swing元素。但是,默认的GraphicsEnvironment是无头的,因为Java没有看到我的EInkDriver
类或我的TouchDriver
类。
我知道有办法调用组件的paint
方法来获取图像;但是,当您绘制Container
时,这存在问题,并且我还想向用户展示GraphicsConfiguration
,以便他们可以编写类似JFrame frame = new JFrame(getEInkGraphicsConfiguration());
的东西,并继续进行,就像编写桌面Swing应用程序一样。
鉴于我已拥有这些功能,我将如何创建GraphicsDevice
或GraphicsEnvironment
,这将允许我在我的项目中使用Swing?
感谢您的快速反应,但我更关心“派生自己的班级”的细节。如果我可以派生类,那么我可以通过调用'JFrame(GraphicsConfiguration)'来使用它。然而,我坚持如何实际派生该类。我正在考虑覆盖'GraphicsDevice.getFullScreenWindow()',但是如果没有'GraphicsEnvironment',我就无法创建'Window',这让我产生了一个鸡蛋和鸡蛋的问题。 –
我没有真正看过它,没有保证,但我想到了设置'java.awt.graphicsenv = my.packge.MyGraphicsEnvironmentChild'。 –
我明白那部分......它并没有解释如何实际实现'my.packge.MyGraphicsEnvironmentChild'。如果我可以实现该类,那么我不需要设置该属性,因为我可以调用'JFrame(new MyGraphicsEnvironmentChild())'。你的答案假定我可以实现这个课程,但我不能这么做 - 这就是我的问题所要求的。所以不幸的是你的回答没有帮助。 –