Java学习笔记 第11章 Swing程序设计——Swing基本组件 1

Java学习笔记 第11章 Swing程序设计——Swing基本组件 1,第1张

本笔记主要内容:1、创建窗体示例

                             2、内容面板示例

                             3、Java.awt.Container、 JPanel常用方法、JScrollPane的构造方法

                             4、布局管理器

创建窗体示例

import javax.swing.*;//导入必要的包

/*自定义窗体类,继承于JFrame类*/
public class MyFrame extends JFrame{
	//构造方法
	public MyFrame() {
		//super("这是我的第一个窗体"); //利用父类的构造方法设置标题
		this.setTitle("这是我的第一个窗体");//设置窗体的标题
		this.setSize(300,200); 		  //设置窗体的大小
		this.setVisible(true);		  //设置窗体为可见,即显示窗体
	}
	//main方法
	public static void main(String[] args) {
		MyFrame mf = new MyFrame();
	}
}

做出来的窗口效果如下,小小的也很可爱。

JFrame常用方法

在写的时候不太清楚this和super用法,参考了以下链接知识点

(17条消息) 【java】this()与super()使用详解_circujoker_06的博客-CSDN博客_superhttps://blog.csdn.net/lzm18064126848/article/details/47068589?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165037409616782089312334%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165037409616782089312334&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-47068589.142%5Ev9%5Epc_search_result_cache,157%5Ev4%5Econtrol&utm_term=super&spm=1018.2226.3001.4187(17条消息) Java中super()的使用_程序员资料站的博客-CSDN博客_super()https://blog.csdn.net/yongbutingxide/article/details/82669054?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165037409616782089312334%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165037409616782089312334&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-82669054.142%5Ev9%5Epc_search_result_cache,157%5Ev4%5Econtrol&utm_term=super&spm=1018.2226.3001.4187大概用法如下

 

事实上,一个完整的窗体是由外部框架和内容面板两部分组成的 

以下介绍内容面板示例

import java.awt.*;//container和color类在此包中
import javax.swing.*;

public class ContentPaneDemo extends JFrame{
	//构造方法
	public ContentPaneDemo() {
		super("这是我的第一个窗体");
		//获得当前窗体的内容面板
		Container contentPane = this.getContentPane();
		//设置内容面板的背景色为红色
		contentPane.setBackground(Color.blue);
		//设置窗体关闭时即退出程序
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300,200);
		setResizable(false);//设置窗体不可调整大小
		setVisible(true);
	}
	//main
	public static void main(String[] args) {
		ContentPaneDemo cpd = new ContentPaneDemo();
	}
}

 做出来的窗口效果

 Java.awt.Container

 JPanel常用方法

JScrollPane的构造方法

常用方法

布局管理器

1、布局管理器类在java.awt中

2、常用布局有FlowLayout(流式布局)、BorderLayout(边框布局)、GridLayout(网格布局)、CardLayout(卡片布局)

图例如下:

流式布局示例

import java.awt.*;//布局管理器在此包中
import javax.swing.*;

public class FlowLayoutDemo extends JFrame{
	//声明4个文本框
	private JTextField txt1,txt2,txt3,txt4;
	//方法
	FlowLayoutDemo(){
		super("流式布局实例");//使用父类的构造方法设置窗体标题
		//实例化文本框
		txt1 = new JTextField("txt1");
		txt2 = new JTextField("txt2");
		txt3 = new JTextField("txt3");
		txt4 = new JTextField("txt4");
		//获取当前窗体的面板内容
		Container me = getContentPane();
		//设置流式布局
		me.setLayout(new FlowLayout());
		//将文本框加到内容面板中
		me.add(txt1);
		me.add(txt2);
		me.add(txt3);
		me.add(txt4);
		setSize(400,400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	public static void main(String[] args) {
		//FlowLayoutDemo fld = new FlowLayoutDemo();
		//实例化窗体,匿名对象
		new FlowLayoutDemo();
	}
}

效果图如下

 可以随意调节大小

边界布局示例(和流式布局代码很像)

import java.awt.*;
import javax.swing.*;

public class BorderLayoutDemo extends JFrame {
  //声明5个按钮
	private JButton Button1,Button2,Button3,Button4,Button5;
	public BorderLayoutDemo(){
		super("边界布局示例");
		//实例化按钮
		Button1 = new JButton("北边按钮");
		Button2 = new JButton("南边按钮");
		Button3 = new JButton("西边按钮");
		Button4 = new JButton("东边按钮");
		Button5 = new JButton("中间按钮");
		//获取窗体的面板内容
		Container me = getContentPane();
		//设置边界布局
		me.setLayout(new BorderLayout());
		//将按钮添加到内容面板的各个方位
		me.add(Button1,BorderLayout.NORTH);
		me.add(Button2,BorderLayout.SOUTH);
		me.add(Button3,BorderLayout.WEST);
		me.add(Button4,BorderLayout.EAST);
		me.add(Button5,BorderLayout.CENTER);
		setSize(399,444);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	public static void main(String[] args) {
		new BorderLayoutDemo();
	}
}

 效果如下

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/726195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存