Java是一種流行的編程語言,由于其跨平臺性和豐富的類庫,被廣泛應(yīng)用于軟件開發(fā)中。Java中的GUI編程主要由兩個重要的包組成:AWT和Swing。
AWT(Abstract Window Toolkit)是Java最早的GUI工具包之一。它提供了一個平臺無關(guān)的窗口系統(tǒng)和一組構(gòu)建用戶界面的Java類庫。AWT類庫中的所有組件都是由操作系統(tǒng)提供的,因此在不同的平臺上可能具有不同的外觀和行為。AWT的主要組件有Frame、Panel、Label、Button、TextField等。
import java.awt.*; import java.awt.event.*; public class AWTDemo extends Frame { private Label lbl; public AWTDemo() { setTitle("AWT Demo"); setSize(200, 150); setLayout(new FlowLayout()); setVisible(true); lbl = new Label("Hello, World!"); add(lbl); } public static void main(String[] args) { new AWTDemo(); } }
Swing是一個重新設(shè)計的GUI工具包,它在JDK 1.2中首次推出。與AWT不同,Swing組件是完全由Java代碼實現(xiàn)的,因此具有相同的外觀和行為,不受操作系統(tǒng)的限制。Swing的主要組件有JFrame、JPanel、JLabel、JButton、JTextField等。
import javax.swing.*; import java.awt.event.*; public class SwingDemo { private static void createAndShowGUI() { JFrame frame = new JFrame("Swing Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel lbl = new JLabel("Hello, World!"); JButton btn = new JButton("Click Me"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { lbl.setText("Button Clicked"); } }); JPanel panel = new JPanel(); panel.add(lbl); panel.add(btn); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
總的來說,AWT雖然簡單易用,但在跨平臺性和外觀上存在局限性。而Swing則通過純Java代碼實現(xiàn)了一個強大的GUI工具包,使得Java應(yīng)用程序能夠在不同的操作系統(tǒng)中具有一致的外觀和行為。