Java中GUI工具包AWT和Swing用法介绍
Java是一种编程语言,它具有丰富的GUI(图形用户界面)编程功能。Java中提供了两个常用的GUI工具包:AWT(注意大小写)和Swing,它们提供了大量的组件和技术,用于创建富有吸引力和交互性的应用程序。
AWT
AWT中的组件直接调用操作系统的本地GUI组件,因此,当用户界面更改时,AWT组件将自动更新。AWT包含一个系统中的 UI ,这与正在运行的操作系统的 UI 相似。例如,如果你在 Windows 中运行 Java 应用程序,则 AWT 将使用 Windows UI。
AWT组件的分类
- 容器类组件:Frame、Window、Dialog、Panel、Applet等;
- 控件类组件:Button、Label、CheckBox、RadioButton、TextField、TextArea、Choice、List等;
- 布局管理器:AWT中的布局管理器有 BorderLayout、FlowLayout、GridLayout、GridBagLayout等。
AWT示例
示例1:创建一个简单的AWT窗口,包含一个Label和一个Button
import java.awt.*;
public class MyAWTExample extends Frame {
public MyAWTExample() {
super("My AWT Example Window");
setLayout(new FlowLayout());
add(new Label("Welcome to AWT"));
add(new Button("Click Me"));
pack();
setVisible(true);
}
public static void main(String[] args) {
new MyAWTExample();
}
}
示例2:使用GridLayout布局管理器创建一个包含3行2列按钮的AWT窗口
import java.awt.*;
public class MyAWTExample2 extends Frame {
public MyAWTExample2() {
super("My AWT Example Window 2");
GridLayout grid = new GridLayout(3, 2);
setLayout(grid);
add(new Button("Button 1"));
add(new Button("Button 2"));
add(new Button("Button 3"));
add(new Button("Button 4"));
add(new Button("Button 5"));
add(new Button("Button 6"));
pack();
setVisible(true);
}
public static void main(String[] args) {
new MyAWTExample2();
}
}
Swing
Swing是一个独立的GUI工具包,不直接调用操作系统本地GUI组件,而是绘制了自己的GUI组件,从而使 Swing 库的组件在所有平台上均具有相同的外观和行为。Swing具有更细致的控制能力,可以创建在不同的操作系统上具有相同外观的GUI界面。
Swing组件分类
- 容器类组件:JFrame、JWindow、JDialog、JPanel等;
- 控件类组件:JButton、JLabel、JCheckBox、JRadioButton、JTextField、JPasswordField、JTextArea、JComboBox、JList等;
- 布局管理器:Swing中的布局管理器也有 BorderLayout、FlowLayout、GridLayout、GridBagLayout等,不同的是它们支持更复杂的布局。
Swing示例
示例3:创建一个简单的Swing窗口,包含一个JLabel和一个JButton
import javax.swing.*;
public class MySwingExample extends JFrame {
public MySwingExample() {
super("My Swing Example Window");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(new JLabel("Welcome to Swing"));
add(new JButton("Click Me"));
pack();
setVisible(true);
}
public static void main(String[] args) {
new MySwingExample();
}
}
示例4:使用GridBagLayout布局管理器创建一个包含2行2列按钮的Swing窗口
import javax.swing.*;
import java.awt.*;
public class MySwingExample2 extends JFrame {
public MySwingExample2() {
super("My Swing Example Window 2");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gridBag = new GridBagLayout();
setLayout(gridBag);
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
c.insets = new Insets(5, 5, 5, 5);
JButton b1 = new JButton("Button 1");
c.gridx = 0;
c.gridy = 0;
gridBag.setConstraints(b1, c);
add(b1);
JButton b2 = new JButton("Button 2");
c.gridx = 1;
c.gridy = 0;
gridBag.setConstraints(b2, c);
add(b2);
JButton b3 = new JButton("Button 3");
c.gridx = 0;
c.gridy = 1;
gridBag.setConstraints(b3, c);
add(b3);
JButton b4 = new JButton("Button 4");
c.gridx = 1;
c.gridy = 1;
gridBag.setConstraints(b4, c);
add(b4);
pack();
setVisible(true);
}
public static void main(String[] args) {
new MySwingExample2();
}
}
以上就是AWT和Swing的介绍和使用示例,希望可以帮助你快速上手GUI编程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中GUI工具包AWT和Swing用法介绍 - Python技术站