国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah Java JavaAsas 什么是java swing?

什么是java swing?

Dec 26, 2019 pm 06:04 PM
java swing

什么是java swing?

Swing是一個用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包(GUI工具包),是JAVA基礎(chǔ)類的一部分;它包括了圖形用戶界面(GUI)器件,如:文本框,按鈕,分隔窗格和表。

Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺上使用JAVA支持的任意面板。輕量級組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺上采用統(tǒng)一的行為。

Swing 類庫結(jié)構(gòu)

Swing 組件都采用 MVC(Model-View-Controller,即模型-視圖-控制器)的設(shè)計,實(shí)現(xiàn) GUI 組件的顯示邏輯和數(shù)據(jù)邏輯的分離,從而允許程序員自定義 Render 來改變 GUI 組件的顯示外觀,以提供更多的靈活性。

Swing 圍繞 JComponent 組件構(gòu)建,JComponent 則由 AWT 的容器類擴(kuò)展而來。

Swing類庫組織結(jié)構(gòu)圖:

1.gif

可以看出,Swing 組件除了 AbstmctButton 類之外都以 J 開頭。Swing 容器組件直接繼承 AWT 類庫中的容器組件類,其他大部分組件都是繼承 JComponet 組件。組件可以劃分為容器組件和非容器組件,容器組件包括 JFmme 和 JDialog。其中 JComponent 定義了非容器類的輕量級組件(JBntton、JPanel、JMenu 等)。

Swing 包

Swing 類庫由許多包組成,通過這些包中的類相互協(xié)作來完成 GUI 設(shè)計。其中,javax.swing 包是 Swing 提供的最大包,它包含將近 100 個類和 25 個接口。幾乎所有 Swing 組件都在該包中。表 1 列出了常用的 Swing 包。

Swing常用包
包名稱 描述
javax.swing 提供一組“輕量級”組件,盡量讓這些組件在所有平臺上的工作方式都相同
javax.swing.border 提供圍繞 Swing 組件繪制特殊邊框的類和接口
javax.swing.event 提供 Swing 組件觸發(fā)的事件
javax.swing.filechooser 提供 JFileChooser 組件使用的類和接口
javax.swing.table 提供用于處理 javax.swing.JTable 的類和接口
javax.swing.text 提供類 HTMLEditorKit 和創(chuàng)建 HTML 文本編輯器的支持類
javax.swing.tree 提供處理 javax.swingJTree 的類和接口

javax.swing.event 包中定義了事件和事件監(jiān)聽器類,javax.swing.event 包與 AWT 的 event 包類似。Java.awt.event 和 javax.swing.event 都包含事件類和監(jiān)聽器接口,它們分別響應(yīng)由 AWT 組件和 Swing 組件觸發(fā)的事件。

例如,當(dāng)在樹組件中需要節(jié)點(diǎn)擴(kuò)展(或折疊)的通知時,則要實(shí)現(xiàn) Swing 的 TreeExpansionListener 接口,并把一個 TreeExpansionEvent 實(shí)例傳送給 TreeExpansionListener 接口中定義的方法,而 TreeExpansionListener 和 TreeExpansionEvent 都是在 swing.event 包中定義的。

雖然 Swing 的表格組件(JTable)在 javax.swing 包中,但它的支持類卻在 javax.swing.table 包中。表格模型、圖形繪制類和編輯器等也都在 javax.swing.table 包中。

與 JTable 類一樣,Swing 中的樹 JTree(用于按層次組織數(shù)據(jù)的結(jié)構(gòu)組件)也在 javax.swing 包中,而它的支持類卻在 javax.swing.tree 包中。javax.swing.tree 包提供樹模型、樹節(jié)點(diǎn)、樹單元編輯類和樹繪制類等支持類。

Swing 容器

創(chuàng)建圖形用戶界面程序的第一步是創(chuàng)建一個容器類以容納其他組件,常見的窗口就是一種容器。容器本身也是一種組件,它的作用就是用來組織、管理和顯示其他組件。

Swing 中容器可以分為兩類:頂層容器和中間容器。

頂層容器是進(jìn)行圖形編程的基礎(chǔ),一切圖形化的東西都必須包括在頂層容器中。頂層容器是任何圖形界面程序都要涉及的主窗口,是顯示并承載組件的容器組件。在 Swing 中有三種可以使用的頂層容器,分別是 JFrame、JDialog 和 JApplet。

● JFrame:用于框架窗口的類,此窗口帶有邊框、標(biāo)題、關(guān)閉和最小化窗口的圖標(biāo)。帶 GUI 的應(yīng)用程序至少使用一個框架窗口。

● JDialog:用于對話框的類。

● JApplet:用于使用 Swing 組件的 Java Applet 類。

中間容器是容器組件的一種,也可以承載其他組件,但中間容器不能獨(dú)立顯示,必須依附于其他的頂層容器。常見的中間容器有 JPanel、JScrollPane、JTabbedPane 和 JToolBar。

● JPanel:表示一個普通面板,是最靈活、最常用的中間容器。

● JScrollPane:與 JPanel 類似,但它可在大的組件或可擴(kuò)展組件周圍提供滾動條。

● JTabbedPane:表示選項(xiàng)卡面板,可以包含多個組件,但一次只顯示一個組件,用戶可在組件之間方便地切換。

● JToolBar:表示工具欄,按行或列排列一組組件(通常是按鈕)。

在 Java 程序中容器類都是繼承自 Container 類。中間容器和頂層容器在,AWT 包和 Swing 包中繼承 Container 類的繼承關(guān)系,如圖所示(容器類組織結(jié)構(gòu)圖):

2.gif

推薦學(xué)習(xí):Java視頻教程

Atas ialah kandungan terperinci 什么是java swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Bagaimana menangani transaksi di Java dengan JDBC? Bagaimana menangani transaksi di Java dengan JDBC? Aug 02, 2025 pm 12:29 PM

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

Memahami dalaman Mesin Maya Java (JVM) Memahami dalaman Mesin Maya Java (JVM) Aug 01, 2025 am 06:31 AM

THEJVMenableSjava's "Writeonce, Runanywhere" keupayaanByExecutingByteCodeThroughFourMaincomponents: 1.TheClassloadersubsystemloads, pautan, danInitializes.ClassFilesusingBootstrap, Extension, andapplicationClassloaders, EnsuringseCureAndlazyCon

Bagaimana untuk bekerja dengan kalendar di Jawa? Bagaimana untuk bekerja dengan kalendar di Jawa? Aug 02, 2025 am 02:38 AM

Gunakan kelas dalam pakej Java.Time untuk menggantikan kelas lama dan kelas kalendar; 2. Dapatkan tarikh dan masa semasa melalui LocalDate, LocalDateTime dan Tempatan Tempatan; 3. Buat tarikh dan masa tertentu menggunakan kaedah (); 4. Gunakan kaedah tambah/tolak untuk meningkatkan dan mengurangkan masa; 5. Gunakan zoneddatetime dan zonid untuk memproses zon waktu; 6. Format dan parse date string melalui DateTimeFormatter; 7. Gunakan segera untuk bersesuaian dengan jenis tarikh lama apabila perlu; pemprosesan tarikh di java moden harus memberi keutamaan untuk menggunakan java.timeapi, yang memberikan jelas, tidak berubah dan linear

Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Membandingkan kerangka Java: Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

Memahami Pelabuhan Rangkaian dan Firewall Memahami Pelabuhan Rangkaian dan Firewall Aug 01, 2025 am 06:40 AM

NetworkPortsandFireWallSworkTogethertoenableCommunicationWileensuringsecurity.1.networkportsarevirtualendpointsNumbered0-655 35, Withwell-KnownportsLike80 (http), 443 (https), 22 (ssh), dan25 (smtp) identitispecificservices.2.portsoperateovertcp (boleh dipercayai, c

Bagaimana pengumpulan sampah berfungsi di java? Bagaimana pengumpulan sampah berfungsi di java? Aug 02, 2025 pm 01:55 PM

Koleksi Sampah Java (GC) adalah mekanisme yang secara automatik menguruskan ingatan, yang mengurangkan risiko kebocoran ingatan dengan menuntut semula objek yang tidak dapat dicapai. 1.GC menghakimi kebolehcapaian objek dari objek akar (seperti pembolehubah stack, benang aktif, medan statik, dan lain -lain), dan objek yang tidak dapat dicapai ditandakan sebagai sampah. 2. Berdasarkan algoritma penandaan tanda, tandakan semua objek yang dapat dicapai dan objek yang tidak ditandai. 3. Mengamalkan strategi pengumpulan generasi: Generasi Baru (Eden, S0, S1) sering melaksanakan MinorGC; Orang tua melakukan kurang tetapi mengambil masa lebih lama untuk melakukan MajorGC; Metaspace Stores Metadata kelas. 4. JVM menyediakan pelbagai peranti GC: SerialGC sesuai untuk aplikasi kecil; ParallelGC meningkatkan throughput; CMS mengurangkan

Membandingkan Java Build Tools: Maven vs Gradle Membandingkan Java Build Tools: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectSduetoitSsuperiorflexibility, Prestasi, danModernToolingSupport.1.Gradle'sGroovy/KOT lindslismoreconciseandexpressivethanmaven'sverbosexml.2.GradleOutPerformsMaveninBuildSpeedWithIncrementalcompilation, BuildCac

Pergi dengan contoh penangguhan yang dijelaskan Pergi dengan contoh penangguhan yang dijelaskan Aug 02, 2025 am 06:26 AM

Defer digunakan untuk melaksanakan operasi tertentu sebelum fungsi pulangan, seperti sumber pembersihan; Parameter dinilai dengan serta-merta apabila menangguhkan, dan fungsi-fungsi dilaksanakan mengikut urutan terakhir (LIFO); 1. Pelbagai penahanan dilaksanakan dalam urutan terbalik pengisytiharan; 2. Biasanya digunakan untuk pembersihan yang selamat seperti penutupan fail; 3. Nilai pulangan yang dinamakan boleh diubah suai; 4. Ia akan dilaksanakan walaupun panik berlaku, sesuai untuk pemulihan; 5. Elakkan penyalahgunaan menangguhkan gelung untuk mengelakkan kebocoran sumber; Penggunaan yang betul boleh meningkatkan keselamatan kod dan kebolehbacaan.

See all articles