即時製作一個物理模擬器的樂趣,我正在查找圖形教程,當我試圖找出所有這些J之間的區別。有人可以詳細說明他們,或者提供一個鏈接到一個有用的來源?JPanel,JFrame,JComponent和JApplet之間的區別
回答
您可能會發現查找oracle上的類很有用。例如:
http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html
在那裏,你可以看到JFrame的擴展JComponent的和JContainer。
JComponent是一個可以繪製的基本對象,JContainer對此進行了擴展,以便您可以向其中添加組件。 JPanel和JFrame都可以擴展JComponent,因爲您可以將其添加到它們中。 JFrame提供了一個窗口,而JPanel只是一個放在窗口內的面板。如果這是有道理的。
JFrame和JApplet是頂級容器。如果您希望創建桌面應用程序,那麼您將使用JFrame,如果您計劃在瀏覽器中託管應用程序,則將使用JApplet。
JComponent是所有Swing組件的抽象類,您可以將它用作新組件的基類。 JPanel是一個簡單的可用compoent,你幾乎可以使用任何東西。
由於這是一個有趣的項目,最簡單的方法是使用JPanel,然後將其託管在JFrame或JApplet中。 Netbeans擁有簡單示例的Swing視覺設計師。
這些類是Java UI設計的常見擴展點。首先,要意識到他們不一定直接與對方有很大關係,所以試圖找到他們之間的關係可能會適得其反。
JApplet - 讓您編寫將在瀏覽器上下文中運行的代碼的基類,例如交互式網頁。這很酷,但它帶來的限制是它在現實世界中玩的不錯的代價。通常,當您想在網頁中擁有自己的用戶界面時,使用JApplet。我一直在想,爲什麼人們不會利用applet來存儲session的狀態,所以不需要數據庫或cookie。
JComponent - 打算與Swing交互的對象的基類。
JFrame - 用於表示窗口應該有的東西。這包括各種系統事件(如「窗口關閉」)(允許應用程序退出嗎?)的邊框(可調整大小的y/n?),標題欄(應用程序名稱或其他消息),控件(最小化/最大化允許?)。
JPanel - 用於將其他元素聚集在一起的泛型類。這對於使用可視佈局或提供的佈局管理器之一更重要,例如gridbaglayout等。例如,您有一個比您保留的區域大的文本框。將文本框放在滾動窗格中並將該窗格放入JPanel中。然後當你放置JPanel時,就佈局而言它將更易於管理。
- 1. JFrame和JPanel之間的通信
- 2. 在JFrame的JPanel內顯示JComponent
- 3. 在JFrame和JPanel之間添加空格
- 4. jFrame到jApplet
- 5. '+ ='和'= +'之間的區別?
- 6. {!!之間的區別!!}和{{}}
- 7. ==和case之間的區別?
- 8. '#','%'和'$'之間的區別
- 9. | =和^ = css之間的區別
- 10. 「%〜dp0」和「。\」之間的區別?
- 11. .eq之間的區別。和==
- 12. ==和.equals()之間的區別?
- 13. `%in%`和`==`之間的區別
- 14. 怎樣的JPanel後的JComponent添加到JPanel中已經添加到JFrame中
- 15. 我可以問什麼是Jframe和JPanel之間的區別,哪些是編碼的主要
- 16. JFrame和JPanel問題
- 17. Java,swing,JFrame和JPanel
- 18. SPFile和PublishingPage類別之間的區別
- 19. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 20. 如何在JPanel和JFrame之間放置偏移量?
- 21. NSthread和NStimer和NSNotifcation之間的區別?
- 22. Java和C#和.NET之間的區別
- 23. sys.log()和console.log()和console.error()之間的區別?
- 24. $ .ajax()和$ .get()和$ .load()之間的區別
- 25. Java Swing,有一個JComponent和一個JPanel
- 26. 將JApplet添加到JPanel
- 27. javascript中的/ * * /和//之間的區別
- 28. python中的[]和[,,]之間的區別
- 29. QWidget的setStyleSheet和QApplication之間的區別
- 30. CKeditor的getHtml()和getData()之間的區別
作爲一個方面說明,繼承鏈對於一些Swing組件來說是荒謬的。它傾向於在IDE中完成代碼完成,並且混亂了javadoc。他們真的需要重寫那個東西 – TheLQ 2010-08-16 22:33:36
我想指出,JFrame不會擴展JComponent或JContainer,而是按照該順序擴展java.awt.Container和java.awt.Component。 – 2013-08-04 03:28:47
@LucasMorgan他們必須讓JFrame對Swing的依賴程度低於我的想象。由於它使用AWT,我想知道是否可以在JApplet中使用JFrame。 – 2015-09-08 15:08:32