Java Swing 教程

Java Swing 教程是 Java Foundation Classes (JFC) 的一部分,用于创建基于窗口的应用程序。它建立在 AWT (Abstract Windowing Toolkit) API 的基础上,完全使用 Java 编写。

与 AWT 不同,Java Swing 提供了平台无关和轻量级的组件。

javax.swing 包提供了用于 Java Swing API 的类,例如 JButton、JTextField、JTextArea、JRadioButton、JCheckbox、JMenu、JColorChooser 等。

AWT 和 Swing 之间的区别

Java AWT 和 Swing 之间有许多区别,如下所示。

No.Java AWTJava Swing
1)AWT 组件是平台相关的Java swing 组件是平台无关的
2)AWT 组件是重量级的Swing 组件是轻量级的
3)AWT不支持可插入的外观Swing支持可插入的外观
4)AWT 提供的组件比 Swing 少。Swing 提供了更强大的组件,例如表格、列表、滚动面板、颜色选择器、选项卡面板等。
5)AWT不遵循 MVC(模型视图控制器),其中模型代表数据,视图代表表示,控制器充当模型和视图之间的接口。Swing遵循 MVC

什么是 JFC

Java Foundation Classes (JFC) 是一组简化桌面应用程序开发的 GUI 组件。

Java Swing 类的层次结构

Java Swing API 的层次结构如下所示。

图

Component 类的常用方法

Component 类的方法在 Java Swing 中被广泛使用,如下所示。

MethodDescription
public void add(Component c)在另一个组件上添加一个组件。
public void setSize(int width,int height)设置组件的大小。
public void setLayout(LayoutManager m)为组件设置布局管理器。
public void setVisible(boolean b)设置组件的可见性。默认情况下为假。

Java Swing 示例

创建 Frame 的两种方式:

  • 通过创建 Frame 类的对象(关联)
  • 通过扩展 Frame 类(继承)

我们可以将 Swing 代码编写在 main()、构造函数或任何其他方法中。

简单的 Java Swing 示例

下面是一个简单的 Swing 示例,在 main() 方法中创建一个按钮并将其添加到 JFrame 对象中。

文件:FirstSwingExample.java

import javax.swing.*;  
public class FirstSwingExample {  
public static void main(String[] args) {  
JFrame f=new JFrame();//创建JFrame的实例    
          
JButton b=new JButton("click");//创建JButton实例  
b.setBounds(130,100,100, 40);//x轴,y轴,宽,高   
          
f.add(b);//在JFrame中添加按钮   
          
f.setSize(400,500);//400宽500高 
f.setLayout(null);//不使用布局管理器    
f.setVisible(true);//使框架可见  
}   
}  
}  

图2

通过构造函数在关联内编写 Swing 的示例

我们还可以在 Java 构造函数中编写创建 JFrame、JButton 和方法调用的所有代码。

文件:Simple.java

import javax.swing.*;  
public class Simple {  
JFrame f;  
Simple(){  
f=new JFrame();//creating instance of JFrame  
          
JButton b=new JButton("click");//creating instance of JButton  
b.setBounds(130,100,100, 40);  
          
f.add(b);//adding button in JFrame  
          
f.setSize(400,500);//400 width and 500 height  
f.setLayout(null);//using no layout managers  
f.setVisible(true);//making the frame visible  
}  
  
public static void main(String[] args) {  
new Simple();  
}  
}  

上面的示例中使用了 setBounds(int xaxis, int yaxis, int width, int height) 方法,该方法设置了按钮的位置。

通过继承实现 Swing 的简单示例

我们还可以继承 JFrame 类,因此无需显式创建 JFrame 类的实例。

文件:Simple2.java

import javax.swing.*;  
public class Simple2 extends JFrame{//inheriting JFrame  
JFrame f;  
Simple2(){  
JButton b=new JButton("click");//create button  
b.setBounds(130,100,100, 40);  
          
add(b);//adding button on frame  
setSize(400,500);  
setLayout(null);  
setVisible(true);  
}  
public static void main(String[] args) {  
new Simple2();  
}}  

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想