七、SWING程序设计(1)

目录

一、Swing概述

1、Swing包:

2、常用Swing组件概述

二、Swing常用窗体 

1、窗体JFrame:

2、JDialog窗体 :

三、文字标签组件与图标

1、标签的使用

2、图标的使用 

四、常用布局管理器 

1、null绝局

2、FlowLayout流布局管理器

3、BorderLayout边界布局

4、GildLayout网格布局


一、Swing概述

Swing特点:统一的风格、不依赖操作系统、轻量级组件、可插入外观组件

 AWT:java.awt、风格不统一、依赖操作系统

1、Swing包

七、SWING程序设计(1)_第1张图片

2、常用Swing组件概述

七、SWING程序设计(1)_第2张图片

七、SWING程序设计(1)_第3张图片

七、SWING程序设计(1)_第4张图片

二、Swing常用窗体 

1、窗体JFrame:

package Swing程序设计;
import java.awt.Color;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JFRAME {
	public static void main(String[] args) {
		JFrame f=new JFrame("窗体标题");//创建窗体对象
		f.setVisible(true);//设置窗体可见
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//隐藏窗口并停止程序
	    f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//无任何操作
	    f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);//隐藏窗体,但不停止程序
	    f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放窗体资源
	    
	    f.setSize(300,200);//设置窗体大小 单位:像素
	    f.setLocation(200,200);//设置坐标 单位:像素
	    f.setBounds(300,200,300,200);//设置窗体大小坐标
	    
	    Container c=f.getContentPane();//获取窗体容器
	    c.setBackground(Color.BLUE);//设置窗体颜色
	    
	    JLabel l=new JLabel("这是一个窗体");
	    c.add(l);//添加组件
//	    c.remove(l);//删除组件
	    c.validate();//验证容器中的组件
//	    f.setContentPane(c);//重新载入容器
	    
	    f.setResizable(false);//设置窗体是否可以改变大小 
		// TODO 自动生成的方法存根

	}

}

2、JDialog窗体 :

package Swing程序设计;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class JDIALOG extends JDialog{
	public JDIALOG(JFrame frame) {
		super(frame,"对话框标题",true);//按钮后只能出现一次!!!
		//第一个参数:父窗体对象
		//第二个参数:对话框标题
		//第三个参数:是否阻塞父窗体
		Container c=getContentPane();//获取窗体容器
		c.add(new JLabel("这是一个对话框"));
		
		setVisible(true);//设置窗体可见
		setBounds(100,100,100,100);//设置窗体坐标和大小
		
	}

	public static void main(String[] args) {
		JFrame f=new JFrame("父窗体");
		f.setBounds(200,200,200,200);
		Container c=f.getContentPane();
		JButton btn=new JButton("弹出对话框");
		c.setLayout(new FlowLayout());//设置布局,使用流布局
		c.add(btn);
		f.setVisible(true);
		f.setDefaultCloseOperation(EXIT_ON_CLOSE);
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				new JDIALOG(f);
			}
		});
		//
		// TODO 自动生成的方法存根

	}

}

七、SWING程序设计(1)_第5张图片

三、文字标签组件与图标

1、标签的使用

package Swing程序设计;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;

import javax.swing.*;
public class biaoqiandeshiyong extends JFrame{
	public biaoqiandeshiyong(){
		setBounds(100,100,100,100);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		Container c=getContentPane();
		setVisible(true);
		
		JLabel l=new JLabel("这是一个标签");
//		l.setText("更改标签内容");
    	
//		System.out.println(l.getText());
		l.setFont(new Font ("楷体",Font.BOLD,20));//更改字体
		l.setForeground(Color.blue);//更改前景色(字体颜色)
		
		c.add(l);
	}
	public static void main(String[] args) {
		new biaoqiandeshiyong();
	}

}

七、SWING程序设计(1)_第6张图片

2、图标的使用 

package Swing程序设计;

import java.awt.Container;
import java.net.URL;

import javax.swing.*;

public class tubiaodeshiyong extends JFrame{
	public tubiaodeshiyong() {
		JFrame f=new JFrame(" 123");
		f.setBounds(100,100,500,400);
		f.setDefaultCloseOperation(EXIT_ON_CLOSE);
		Container c=f.getContentPane();
		
		JLabel l=new JLabel("这是一个展示图片的标签");
//		URL url=tubiaodeshiyong.class.getResource("捕获.PNG");
//		Icon icon=new ImageIcon(url);//获取相应路径下的图片文件
		Icon icon=new ImageIcon("/小郭同学/src/Swing程序设计/捕获.PNG");//第二种方法:获取相应路径下的图片文件
		l.setIcon(icon);//添加图片
		c.add(l);
		
		f.setVisible(true);
		 
	}
public static void main(String[] args) {
	new tubiaodeshiyong();
}
	
}

四、常用布局管理器 

1、null绝局

使用坐标控制组建的位置

(使用绝对布局的窗口通常是固定大小的,组件位置和形状不会随窗体变化而发生变化)

package Swing程序设计;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
public class nulljueduibuju extends JFrame{
	public nulljueduibuju() {
		setBounds(100, 100, 100, 100);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		Container c= getContentPane();
		c.setLayout(null);//将容器布局设为绝对布局
		JButton b1=new JButton("按钮1");
		JButton b2=new JButton("按钮2");//创建两个按钮
		b1.setBounds(10, 30, 80, 50);
		b2.setBounds(60, 70, 100, 20);
		c.add(b1);
		c.add(b2);
		setVisible(true);
		b1.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				new JDIALOG( );
				// TODO 自动生成的方法存根
				
			}
		});
	}

	public static void main(String[] args) {
		new nulljueduibuju();
		// TODO 自动生成的方法存根

	}

}

七、SWING程序设计(1)_第7张图片

2、FlowLayout流布局管理器

 从左向右排列,默认居中对齐

像流水一样,向某个方向流动,遇到障碍就折回

package Swing程序设计;

import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;

public class FlowLayout extends JFrame{
	public FlowLayout() {
	setBounds(100,100,300,200);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	Container c=getContentPane();
	c.setLayout(new java.awt.FlowLayout());//给容器设置流布局
	for(int i=1;i<=10;i++) {
		c.add(new JButton("按钮"+i));
		
	}
	setVisible(true);
	}

	public static void main(String[] args) {
		new FlowLayout();
		// TODO 自动生成的方法存根

	}

}

七、SWING程序设计(1)_第8张图片

 七、SWING程序设计(1)_第9张图片

3、BorderLayout边界布局

七、SWING程序设计(1)_第10张图片

package Swing程序设计;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;

import javax.swing.*;


public class BORDERLAYOUT extends JFrame {
	public BORDERLAYOUT(){
		setBounds(100, 100, 350, 200);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new BorderLayout());
		setVisible(true);
		JButton b1=new JButton("中"),
				 b2=new JButton("东"),
				 b3=new JButton("西"),
				 b4=new JButton("南"),
				 b5=new JButton("北");
		c.add(b1,BorderLayout.CENTER);//中部添加按钮
		c.add(b2,BorderLayout.EAST);//东部添加按钮
		c.add(b3,BorderLayout.WEST);//西部添加按钮
		c.add(b4,BorderLayout.SOUTH);//南部添加按钮
		c.add(b5,BorderLayout.NORTH);//北部添加按钮
		c.add(new JButton("覆盖"),BorderLayout.CENTER);
		setVisible(true);
		

	}

	public static void main(String[] args) {
		new BORDERLAYOUT();
		// TODO 自动生成的方法存根

	}

}

七、SWING程序设计(1)_第11张图片

 七、SWING程序设计(1)_第12张图片

4、GildLayout网格布局

七、SWING程序设计(1)_第13张图片

 

package Swing程序设计;

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.*;

public class GildLayout extends JFrame{
	public GildLayout() {
		setBounds(100, 100, 300, 300);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new GridLayout(7,3,5,5));//设置网格布局
		
		
		for(int i=1;i<=20;i++) {
			c.add(new JButton("按钮"+i));
		}
		
		setVisible(true);
		
	}

	public static void main(String[] args) {
		new GildLayout();
		// TODO 自动生成的方法存根

	}

}
七、SWING程序设计(1)_第14张图片
七、SWING程序设计(1)_第15张图片

 

你可能感兴趣的:(初学者自学+课堂教学java,eclipse,java,数据结构,算法)