七、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包

2、常用Swing组件概述

二、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 自动生成的方法存根

	}

}

三、文字标签组件与图标

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();
	}

}

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 自动生成的方法存根

	}

}

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 自动生成的方法存根

	}

}

 

3、BorderLayout边界布局

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 自动生成的方法存根

	}

}

 

4、GildLayout网格布局

 

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 自动生成的方法存根

	}

}

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郭同学忒骚了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值