我正在開發一個在嵌入式系統中使用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())'。你的答案假定我可以實現這個課程,但我不能這麼做 - 這就是我的問題所要求的。所以不幸的是你的回答沒有幫助。 –