簡體   English   中英

如何在Java中創建非Swing按鈕?

[英]How can I make a non-Swing button in Java?

我正在創建一個游戲,其中我有一個帶有多個視圖的菜單,用於使用游戲狀態轉換選擇游戲類型,選項等。 每個菜單都將在Canvas對象的JFrame中主動呈現。 由於我通過向Canvas繪制BufferedImage來對每個游戲狀態進行活動渲染,因此我不能使用JButton或任何其他JComponentComponent (awt),因為Graphics2D對象無法像以下那樣繪制它們:

Graphics2D g = bufferStrategy.getDrawGraphics();
g.draw(new JButton("Click me"));

如何實現可以接收鼠標輸入並使用Graphics2D對象繪制的自定義按鈕?

將鼠標偵聽器添加到您正在繪制的組件上,並確定鼠標單擊是否在您想要成為按鈕的區域中。

為什么要在已經使用Swing的應用程序中使用Canvas(JFrame是Swing)?

BufferedImage image = new BufferedImage(blah....)
Graphics2D gfx = image.createGraphics();
JButton but = new JButton("Click me");
but.update(gfx);

但那真的很難看!

你為什么不帶JPanel? Afaik你可以覆蓋paint方法來調用update方法,這樣面板就不會被清除(但是我用Java時已經有一段時間了)。 然后你可以使用你在更新方法中作為參數獲得的Graphics2D來繪制東西,它允許你甚至添加自己的按鈕和其他東西給它...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM