Java Swing和AWT:GUI开发基础区别及示例

原创 约定不等于承诺〃 2024-12-02 08:57 152阅读 0赞

Swing和Awt都是Java中用于创建图形用户界面(GUI)的API。尽管它们功能相似,但有一些基本的区别:

  1. 更新机制

    • AWT:基于事件驱动,需要手动调用repaint()revalidate()来更新UI。
    • Swing:继承自AWT,引入了MVC(Model-View-Controller)模式,通过监听器自动维护UI。
  2. 外观设计与组件

    • AWT提供了基本的图形元素,如按钮、文本框等,但风格和布局相对较少。
    • Swing基于JavaFX,引入了更丰富的组件,如JPanel、JTable、JList等,并支持CSS样式,提供更现代的UI。

示例:

  • AWT示例(创建一个简单的按钮):
    ```java
    import javax.swing.*;

public class AWTButtonExample {
public static void main(String[] args) {
// 创建一个按钮组件
JButton button = new JButton(“Click Me!”);

  1. // 添加事件监听器,当点击按钮时会执行特定操作
  2. button.addActionListener(e -> System.out.println("Button clicked!")));
  3. // 设置窗口大小并显示
  4. JFrame frame = new JFrame("AWT Button Example");
  5. frame.setSize(200, 150);
  6. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  7. frame.add(button);
  8. // 显示窗口
  9. frame.setVisible(true);
  10. }

}

  1. - Swing示例(创建一个带有文本输入和提交按钮的简单表单):
  2. ```java
  3. import javax.swing.*;
  4. import java.awt.*;
  5. public class SwingFormExample {
  6. public static void main(String[] args) {
  7. // 创建主容器,例如JFrame
  8. JFrame frame = new JFrame("Swing Form Example");
  9. frame.setSize(400, 300);
  10. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11. // 创建表单组件(JPanel作为容器)
  12. JPanel panel = new JPanel(new GridLayout(2, 1)), true);
  13. panel.setName("Form Panel");
  14. // 添加文本输入组件
  15. JTextField textField = new JTextField(20);
  16. textField.setName("TextField");
  17. panel.add(textField);
  18. // 添加提交按钮
  19. JButton submitButton = new JButton("Submit");
  20. submitButton.setName("SubmitButton");
  21. panel.add(submitButton);
  22. // 将面板添加到主容器中
  23. frame.add(panel);
  24. // 设置窗口可见性
  25. frame.setVisible(true);
  26. }
  27. }

以上示例展示了如何使用AWT创建一个简单的按钮,以及如何使用Swing创建一个带有文本输入和提交按钮的表单。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,152人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java Swing GUI 缺陷解决示例

    Swing,是Java平台中的一种GUI(用户界面)工具包。虽然Swing提供了丰富的组件和布局管理器,但也存在一些缺陷。以下是一些常见问题的示例及解决方法: 1. **滞后