在第三次实验中需要用到Swing组件。就临时学了一点,现在各个事情都告一段落,就写一下自己的理解。不说了直接上图
下表是常用的Swing组件
先介绍常用的窗体JFframe和JDialog
JFrame窗体是一个容器,它是Swing程序各个组件的载体,可以将JFrame看作是承载这些Swing组建的容器,在开发应用程序时可以通过JAVA.SWING.JFRAME类创建一个窗体,并在这个窗体添加组件。语法格式如下:
JFrame jf = new JFrame(title);
Container cntainer = jf.getContenPane();
Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用getContentPane(方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自Container类的add0方法进行设置。例如:
container.add(new JButton(“按钮”);IIJButton按钮组件在容器中添加组件后,也可以使用Container类的remove0方法将这些组件从容器中删除。例如:container.remove(new JButton("按钮));
import java.awt.Color;
import java.awt.Container;
import javax.swing.*;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class example extends JFrame{
public void creat(String title) {
JFrame jf = new JFrame(title); //实例化一个JFrame对象
Container container = jf.getContentPane(); //获取容器
JLabel jl = new JLabel("呜哈哈哈哈"); //创建一个位于窗体上的标签
jl.setHorizontalAlignment(SwingConstants.CENTER); //标签上的文字居中
container.add(new JButton("按钮")); //在容器桑添加一个按钮(这个按钮按了什么也不会发生)
jf.setVisible(true); //使按钮课件
container.add(jl); //在容器内加入标签
container.setBackground(Color.white); //设置容器背景颜色
jf.setVisible(true); //让窗体可使
jf.setSize(800,500); //设置窗体大小
jf.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
}
public static void main(String[] args) {
new example().creat("ln栓的第一个JFrame窗体"); //调用create方法
}
}
运行结果如下
import java.awt.Color;
import java.awt.Container;
import javax.swing.*;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
public class example extends JFrame{
public void creat(String title) {
//JFrame jf = new JFrame(title); //实例化一个JFrame对象
Container container = getContentPane(); //获取容器
JLabel jl = new JLabel("呜哈哈哈哈"); //创建一个位于窗体上的标签
jl.setHorizontalAlignment(SwingConstants.CENTER); //标签上的文字居中
container.add(new JButton("按钮")); //在容器桑添加一个按钮(这个按钮按了什么也不会发生)
setVisible(true); //使按钮课件
container.add(jl); //在容器内加入标签
container.setBackground(Color.white); //设置容器背景颜色
setVisible(true); //让窗体可使
setSize(800,500); //设置窗体大小
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
}
public static void main(String[] args) {
new example().creat("ln栓的第一个JFrame窗体"); //调用create方法
}
}
JDialog窗体是Swing组件中的对话框,它继承了AWT组件中的java awt.Dialg类。JDialog窗体的功能是从-个 窗体中弹出另一个窗体,就像是在使用 IE浏览器时弹出的确定对话框一样。JDialog 窗体实质上就是另一种类型的窗体,它与JFrame 窗体类似,在使用时也需要调getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
class MyDialog extends JDialog{
public MyDialog(MyFrame frame) {
super(frame,"第一个JDialog窗体",true); //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型
Container container = getContentPane(); //创建一个容器
container.add(new JLabel("这是一个对话框")); //添加标签
setBounds(50,100,100,100); //设置对话框大小和出现的位置
}
}
public class MyFrame extends JFrame {
public static void main(String[] args) {
new MyFrame(); //实例化对象
}
public MyFrame() {
Container container = getContentPane(); //创建容器
container.setLayout(null);
JLabel jl = new JLabel("这是一个JFrame窗体"); //在窗体中设置标签
jl.setBounds(50, 50, 120, 50); //设置标签的大小和位置
jl.setHorizontalAlignment(SwingConstants.CENTER);//将标签文字居中
container.add(jl); //添加标签
JButton bl = new JButton("弹出对话框"); //定义一个按钮
bl.setBounds(20,20,120,20); //设置按钮的大小和位置
bl.addActionListener(new ActionListener() { //为按钮添加鼠标点击事件
public void actionPerformed(ActionEvent e) {
new MyDialog(MyFrame.this).setVisible(true); //使MyDialog窗体可见
}
});
container.add(bl); //在容器中添加按钮
setSize(400,400); //设置窗体大小
setVisible(true); //窗体可见
}
}
结果如下
在本实例中,为了使对话框在父窗体弹出,定义了一个JFrame窗体,首先在该窗体中定义一个按钮,一个鼠标单击监听事件newMyJDialog0.setVisible(true)语句使对话框窗体可见,这样就实现了用户单击该按钮后弹出对话框的功能。在MyJDialog类中,由于它继承了JDialog类,所以可以在构。上图弹出JDialog窗体造方法中使用super关键字调用JDialog构造方法。在这里使用publicJDialog(Framef,String title,boolean model)这种形式的构造方法,相应地设置了自定义的JFrame窗体以及对话框的标题和窗体类型。在本实例代码中可以看到,JDialog 窗体与JFrame 窗体形式基本相同,甚至在设置窗体的特性时调田的方法夕称都基本相同,如设置窗体大小、窗体关闭状态等。