簡體   English   中英

使用Java在GUI編程中混合awt和swing

[英]mixing awt and swing in GUI programming using Java

我在SO上讀到,混合awt和swing並不是Java中GUI編程的好方法。 但是,我找不到任何使用swing時不使用某些awt組件的示例。 例如,即使使用swing,我遇到的大多數示例都將使用awt進行布局和事件處理。

話雖這么說,在使用Java的GUI編程中不混合使用swing和awt是什么意思? 這是否意味着不同時借用swing和awt的按鈕,畫布等圖形小部件,還是僅完全使用swing或awt? 還是可以使用來自揮桿的圖形單元(如按鈕,面板)以及來自awt的事件處理和布局?

在大多數情況下,導入至少看起來像這樣:

import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

我可能是錯的,但是由於我不熟悉Java GUI,因此沒有看到使用沒有awt的完全擺動的示例或以錯誤的方式查看此示例。

使用Swing時,您將使用AWT布局,動作偵聽器等-可以,並且在設計上,Swing框架在這方面基於AWT構建。 這與JavaFX相反,JavaFX本身就是一個完整的GUI框架,並包含其自己的布局,事件處理程序等。

如果可能的話,應該避免將您放置在GUI中的實際組件混合在一起-例如,在框架(而不是JFrame)中使用JButton,或者並排使用Button和JButton。

在某些情況下有必要-例如,如果要使用普通的嵌入式視頻播放器,則在Swing應用程序中使用VLCJ需要重量級(AWT)畫布。 但是,如果沒有像上面這樣的好用例,那就應該避免這種情況。

暫無
暫無

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

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