我在 SO 上读到,混合 awt 和 swing 并不是用 Java 进行 GUI 编程的好方法。但是,我无法找到任何在使用 Swing 时不使用某些 awt 组件的示例。例如,即使在使用swing时,我遇到的大多数示例都会使用awt进行布局和事件处理。
话虽如此,在使用 Java 的 GUI 编程中不混合 Swing 和 awt 意味着什么?这是否只是意味着不要同时从swing和awt中借用按钮,画布等图形小部件,或者只是完全单独使用swing或awt?或者可以使用来自 Swing 的图形单元(如按钮、面板)以及来自 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;
Run Code Online (Sandbox Code Playgroud)
我可能是错的,但由于我是 Java GUI 的新手,我还没有看到使用完全摆动而不使用 awt 或以错误的方式查看此示例的示例。
在使用 Swing 时,您将使用 AWT 布局、动作侦听器等 - 这是可以的,并且按照设计,Swing 框架在这方面构建在 AWT 之上。这与 JavaFX 形成对比,JavaFX 本身就是一个完整的 GUI 框架,并包含自己的布局、事件处理程序等。
如果可能,您应该避免混合放置在 GUI 中的实际组件- 例如,使用框架内的 JButton(而不是 JFrame),或者并排使用 Button 和 JButton。
在某些情况下这是必要的 - 例如,如果您想使用普通的嵌入式视频播放器,在 Swing 应用程序中使用 VLCJ 需要重量级 (AWT) 画布。但是,如果没有像上面这样的良好用例,则应该避免这种情况。
归档时间: |
|
查看次数: |
2863 次 |
最近记录: |