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

时间:2013-09-20 13:48:11

标签: java swing awt

我读到SO,混合awt和swing对于Java中的GUI编程来说并不是一个好方法。但我不能找到任何在使用swing时不使用某些awt组件的示例。例如,即使使用swing,我遇到的大部分示例都将使用awt进行布局和事件处理。

话虽这么说,使用Java在GUI编程中混合使用swing和awt是什么意思?它是否意味着不要同时借用摇摆和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;

我可能错了,但是我没有看到使用完全摆动而没有awt的例子,或者因为我是Java GUI的新手而以错误的方式看待它。

1 个答案:

答案 0 :(得分:4)

在使用Swing时,您将使用AWT布局,动作侦听器等 - 这是好的,并且在设计上,Swing框架在这方面构建在AWT上。这与JavaFX形成对比,JavaFX本身就是一个完整的GUI框架,并包含自己的布局,事件处理程序等。

如果可能,您应该避免混合放置在GUI中的实际组件 - 例如在Frame(而不是JFrame)中使用JButton,或者使用Button和JButton方面侧。

在某些情况下,如果你想使用普通的嵌入式视频播放器,在Swing应用程序中使用VLCJ需要一个重量级(AWT)画布。但是,如果没有像上面这样的好用例,那就应该避免。