2012-05-15 21 views
3

我聽過好幾遍不要混用SwingAWT(重量級和輕量級)組件。如果我只有一個組件,在JFrame中使用AWT是否安全?

但如果我將沒有比說,一個組件顯示在同一時間上JFrame更多。到目前爲止,我所看到的主要事情是AWT組件總是在上面,但正如我之前說的,如果我只將有一個組件上的JFrame一次又有什麼關係?

編輯:我所需要做的就是塗上一張AWTCanvas。我正在使用這個遊戲,所以我需要一個BufferStrategy

所以我想我的問題是:即使您只能同時在JFrame上顯示一個組件,是否還有一個令人信服的理由不混合AWTSwing組件?

此外,我已經擁有它只是在JFrameCanvas工作只是罰款,所以什麼都移動到揮杆的優勢是什麼?

由於事先:-)

+0

爲什麼不去AWT完全? –

+0

@CaptainGiraffe我想我可以這樣。但是我沒有得到setDefaultCloseOperation,所以我不得不讓一個Listener來關閉它。但我想這不會太難。 –

+0

這是4行代碼,給或採用:)使用WindowAdapter類 –

回答

4
  • 你必須使用AWT組件HIGHT性能繪畫,多媒體或矢量從OpenGL中,CAD/CAM E.I.圖形

  • 可以一起使用AWT組件與Swing JComponents只有當你有很重要的原因(S),從搖擺例如上午點或事件(S)是/是越野車或常規的bug在BugParade

  • 我建議不要混合使用Swing,從本機OS AWT組件

  • dis_advantage它們的發展而告終來到AWT和他們是基於資源AWT組件反之亦然

  • 優勢上個世紀

  • Swing是基於或AWT組件的繼承和他們的方法

2

與大多數的決定,這是真的,什麼是對你很重要的事。混合AWT和Swing有性能上的缺點,如果你試圖使用主題,你也會遇到問題。這就是說,沒有理由不這樣做,如果這是你所需要的。

Swing是建立在AWT之上,是的,它是新的,更快,更好,但它仍然有獲得的一切AWT了。

這裏真正的問題應該是,如果有一種方法做,你需要不使用AWT做什麼?給我們一些關於你需要做什麼的指導,也許有一種方法可以用Swing來實現。

+0

我做了你所說的,並添加了我在做什麼的解釋。 –

+0

嗨艾丹,你想畫一個AWT畫布?你有什麼特別的事情想做?如果重寫paint()方法,Swing也可以做類似的事情。 – Ewald

3

..是JPanel最好的鞦韆更換Canvas

是的,但覆蓋paintComponent(Graphics)而非paint(Graphics)

+0

+1,因爲你的回答很有幫助。但是當我編輯時,我需要使用一個'BufferStrategy'。 –

相關問題