JAVA入门到精通-第31讲-常见组件

面板组件-Jpanel



 一个JFrame,多个JPanel;

JPanel默认是流布局;FlowLayout;



 通过JPanel达到复杂布局的目的;



 可以认为是网格布局,有3个JPanel;2个Label;2个按钮;

一个密码框和一个文本输入框;



 

最终展现出来的还是靠JFrame展现的



 网格布局好点,3个JPanel,用流布局,控件往里加;

ButtonGroup按钮组;一组里面只能选择一个;



 

 对单选框管理,就是把它加入到ButtonGroup里面;

单选框也是一个个放进JPanel的;

最后把JPanel全部加入到JFrame里面:



  最后,在主函数里面创建对象实例进行构造;



 

JComboBox:

JList:

 JScrollPane/JList:

最大显示的是在JList里,添加是在JScroll;



 

Swing组件--面板组件

面板组件(JPanel)--介绍

在图形用户界面编程中,如果只是普通的组件布局,我们用前面讲的三种布局管理器就可以解决,但在比较复杂的布局要求时,就需要使用布局管理器的组合使用。

面板组件(JPanel)--使用[Window005.java]

JPanel:面板组件,非顶层容器,一个界面只可以有一个JFrame窗体组件,但可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout、BorderLayout、GirdLayout等各种布局管理器,这样可以组合使用达到较为复杂的布局效果。

/**
* 多种布局管理器,面板组件(JPanel)--使用
*/
import java.awt.*;
import javax.swing.*;
public class Window005 extends JFrame{
//定义组件
JPanel jp1,jp2;
JButton jb1,jb2,jb3,jb4,jb5,jb6;
public static void main(String[] args) {
Window005 win=new Window005();
}
//构造函数
public Window005(){
//创建组件
jp1=new JPanel();//JPanel布局默认是FlowLayout流布局
jp2=new JPanel();

jb1=new JButton("西瓜");
jb2=new JButton("苹果");
jb3=new JButton("荔枝");
jb4=new JButton("葡萄");
jb5=new JButton("桔子");
jb6=new JButton("香蕉");

//设置布局管理器(Jpanel默认流布局)

//添加JPanel
jp1.add(jb1);
jp1.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5);

//把Panel加入JFrame
this.add(jp1, BorderLayout.NORTH);
this.add(jb6, BorderLayout.CENTER);
this.add(jp2, BorderLayout.SOUTH);

//设置窗体
this.setSize(300, 250);//窗体大小
this.setLocation(200, 200);//屏幕显示初始位置
this.setVisible(true);//显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭
}
}

xxxxxxxxxx

46

1

/**

2

* 多种布局管理器,面板组件(JPanel)--使用

3

*/

4

import java.awt.*;

5

import javax.swing.*;

6

public class Window005 extends JFrame{

7

    //定义组件

8

    JPanel jp1,jp2;

9

    JButton jb1,jb2,jb3,jb4,jb5,jb6;

10

    public static void main(String[] args) {

11

        Window005 win=new Window005();

12

    }

13

    //构造函数

14

    public Window005(){

15

        //创建组件

16

        jp1=new JPanel();//JPanel布局默认是FlowLayout流布局

17

        jp2=new JPanel();

18

        

19

        jb1=new JButton("西瓜");

20

        jb2=new JButton("苹果");

21

        jb3=new JButton("荔枝");

22

        jb4=new JButton("葡萄");

23

        jb5=new JButton("桔子");

24

        jb6=new JButton("香蕉");

25

        

26

        //设置布局管理器(Jpanel默认流布局)

27

        

28

        //添加JPanel

29

        jp1.add(jb1);

30

        jp1.add(jb2);

31

        jp2.add(jb3);

32

        jp2.add(jb4);

33

        jp2.add(jb5);

34

        

35

        //把Panel加入JFrame

36

        this.add(jp1, BorderLayout.NORTH);

37

        this.add(jb6, BorderLayout.CENTER);

38

        this.add(jp2, BorderLayout.SOUTH);

39

        

40

        //设置窗体

41

        this.setSize(300, 250);//窗体大小

42

        this.setLocation(200, 200);//屏幕显示初始位置

43

        this.setVisible(true);//显示

44

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出窗体后将JFrame同时关闭

45

    }

46

}

------------------------------------------------------------------------------

面板(JPanel)组件--注意事项

1、JPanel是JComponent的子类;

2、属于容器类组件,可以加入别的组件;

3、默认布局管理器是流式布局(FlowLayout)

Swing组件--文本框/密码框/标签组件[Window006.java]

几个常用组件

在图形用户界面编程中,我们常常会提供用户登录界面,比如登录到会员管理系统,登录到工资管理系统、仓库管理系统等。这时候我们就会用到:

1、文本框(JTextField)

2、密码框(JPasswordField)

3、标签(JLable)

/**
* Swing组件--文本框(JTextField)/密码框(JPasswordField)/标签(JLable)组件使用
*/
import java.awt.*;
import javax.swing.*;
public class Window006 extends JFrame{
//定义组件
JPanel jp1,jp2,jp3;//面板
JLabel jlb1,jlb2;//标签
JButton jb1,jb2;//按钮
JTextField jtf;//文本
JPasswordField jpf;//密码
public static void main(String[] args) {
Window006 win=new Window006();
}

//构造函数
public Window006(){
//创建面板
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
//创建标签
jlb1=new JLabel("用户名");
jlb2=new JLabel("密 码");
//创建按钮
jb1=new JButton("登录");
jb2=new JButton("取消");
//创建文本框
jtf=new JTextField(10);
//创建密码框
jpf=new JPasswordField(10);

//设置布局管理
this.setLayout(new GridLayout(3, 1));//网格式布局

//加入各个组件
jp1.add(jlb1);
jp1.add(jtf);

jp2.add(jlb2);
jp2.add(jpf);

jp3.add(jb1);
jp3.add(jb2);

//加入到JFrame
this.add(jp1);
this.add(jp2);
this.add(jp3);

//设置窗体
this.setTitle("用户登录");//窗体标签
this.setSize(300, 150);//窗体大小
this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame
this.setVisible(true);//显示窗体

//锁定窗体
this.setResizable(false);
}
}

xxxxxxxxxx

62

1

/**

2

* Swing组件--文本框(JTextField)/密码框(JPasswordField)/标签(JLable)组件使用

3

*/

4

import java.awt.*;

5

import javax.swing.*;

6

public class Window006 extends JFrame{

7

    //定义组件

8

    JPanel jp1,jp2,jp3;//面板

9

    JLabel jlb1,jlb2;//标签

10

    JButton jb1,jb2;//按钮

11

    JTextField jtf;//文本

12

    JPasswordField jpf;//密码

13

    public static void main(String[] args) {

14

        Window006 win=new Window006();

15

    }

16

    

17

    //构造函数

18

    public Window006(){

19

        //创建面板

20

        jp1=new JPanel();

21

        jp2=new JPanel();

22

        jp3=new JPanel();

23

        //创建标签

24

        jlb1=new JLabel("用户名");

25

        jlb2=new JLabel("密    码");

26

        //创建按钮

27

        jb1=new JButton("登录");

28

        jb2=new JButton("取消");

29

        //创建文本框

30

        jtf=new JTextField(10);

31

        //创建密码框

32

        jpf=new JPasswordField(10);

33

        

34

        //设置布局管理

35

        this.setLayout(new GridLayout(3, 1));//网格式布局

36

        

37

        //加入各个组件

38

        jp1.add(jlb1);

39

        jp1.add(jtf);

40

        

41

        jp2.add(jlb2);

42

        jp2.add(jpf);

43

        

44

        jp3.add(jb1);

45

        jp3.add(jb2);

46

        

47

        //加入到JFrame

48

        this.add(jp1);

49

        this.add(jp2);

50

        this.add(jp3);

51

        

52

        //设置窗体

53

        this.setTitle("用户登录");//窗体标签

54

        this.setSize(300, 150);//窗体大小

55

        this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)

56

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame

57

        this.setVisible(true);//显示窗体

58

        

59

        //锁定窗体

60

        this.setResizable(false);

61

    }

62

}

------------------------------------------------------------------------------

Swing组件--复选框/单选框组件[Window007.java]

几个常用组件

在图形用户界面编程中,我们常常会提供用户注册界面,这时候我们就会用到:

1、复选框组件(JCheckBox)

2、单选框组件(JRadioButton)

特别说明:

    同一组单选按钮必需先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中

/**
* 复选框组件(JCheckBox)和单选框组件(JRadioButton)使用
*/
import java.awt.*;
import javax.swing.*;
public class Window007 extends JFrame{
//定义组件
JPanel jp1,jp2,jp3;
JLabel jl1,jl2;
JCheckBox jcb1,jcb2,jcb3;
JRadioButton jrb1,jrb2;
ButtonGroup bg;
JButton jb1,jb2;
public static void main(String[] args) {
Window007 win=new Window007();
}
//构造函数
public Window007(){
//创建组件
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();

jl1=new JLabel("你最喜欢的运功:");
jl2=new JLabel("你的性别:");

jcb1=new JCheckBox("足球");
jcb2=new JCheckBox("篮球");
jcb3=new JCheckBox("网球");

jrb1=new JRadioButton("男");
jrb2=new JRadioButton("女");

jb1=new JButton("注册用户");
jb2=new JButton("取消注册");

//一定要把jrb1与jrb2放入到一个ButtonGroup中
ButtonGroup bg=new ButtonGroup();
bg.add(jrb1);
bg.add(jrb2);

//创建布局
this.setLayout(new GridLayout(3, 1));

//加入组件
jp1.add(jl1);
jp1.add(jcb1);
jp1.add(jcb2);
jp1.add(jcb3);

jp2.add(jl2);
jp2.add(jrb1);
jp2.add(jrb2);

jp3.add(jb1);
jp3.add(jb2);

this.add(jp1);
this.add(jp2);
this.add(jp3);

//设置窗体
this.setTitle("用户注册");
this.setSize(300, 150);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

xxxxxxxxxx

69

1

/**

2

* 复选框组件(JCheckBox)和单选框组件(JRadioButton)使用

3

*/

4

import java.awt.*;

5

import javax.swing.*;

6

public class Window007 extends JFrame{

7

    //定义组件

8

    JPanel jp1,jp2,jp3;

9

    JLabel jl1,jl2;

10

    JCheckBox jcb1,jcb2,jcb3;

11

    JRadioButton jrb1,jrb2;

12

    ButtonGroup bg;

13

    JButton jb1,jb2;

14

    public static void main(String[] args) {

15

        Window007 win=new Window007();

16

    }

17

    //构造函数

18

    public Window007(){

19

        //创建组件

20

        jp1=new JPanel();

21

        jp2=new JPanel();

22

        jp3=new JPanel();

23

        

24

        jl1=new JLabel("你最喜欢的运功:");

25

        jl2=new JLabel("你的性别:");

26

        

27

        jcb1=new JCheckBox("足球");

28

        jcb2=new JCheckBox("篮球");

29

        jcb3=new JCheckBox("网球");

30

        

31

        jrb1=new JRadioButton("男");

32

        jrb2=new JRadioButton("女");

33

        

34

        jb1=new JButton("注册用户");

35

        jb2=new JButton("取消注册");

36

        

37

        //一定要把jrb1与jrb2放入到一个ButtonGroup中

38

        ButtonGroup bg=new ButtonGroup();

39

        bg.add(jrb1);

40

        bg.add(jrb2);

41

        

42

        //创建布局

43

        this.setLayout(new GridLayout(3, 1));

44

        

45

        //加入组件

46

        jp1.add(jl1);

47

        jp1.add(jcb1);

48

        jp1.add(jcb2);

49

        jp1.add(jcb3);

50

        

51

        jp2.add(jl2);

52

        jp2.add(jrb1);

53

        jp2.add(jrb2);

54

        

55

        jp3.add(jb1);

56

        jp3.add(jb2);

57

        

58

        this.add(jp1);

59

        this.add(jp2);

60

        this.add(jp3);

61


62

        //设置窗体

63

        this.setTitle("用户注册");

64

        this.setSize(300, 150);

65

        this.setLocationRelativeTo(null);

66

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

67

        this.setVisible(true);

68

    }

69

}

------------------------------------------------------------------------------

Swing组件--下拉框/列表框/流动空格组件[Window008.java]

在图形用户界面编程中,我们常常会提供用户调查界面,这个时候我们会用到:

1、下拉框组件(JComboBox)

2、列表框组件(JList)

3、滚动窗格组件(JScrollPane)

特别说明:

    一般来说,列表框组件+滚动窗格组件是结合使用的。目的是让列表框中的选项可以有滚动条支持。

/**
* 下拉框(JComboBox)/列表框(JList)/滚动空格(JScrollPane)的使用
*/
import java.awt.*;
import javax.swing.*;
public class Window008 extends JFrame{
//定义组件
JPanel jp1,jp2;
JLabel jl1,jl2;
JComboBox jcb;
JList jl;
JScrollPane jsp;
public static void main(String[] args) {
Window008 win=new Window008();
}
//构造函数
public Window008(){
//建立组件
jp1=new JPanel();
jp2=new JPanel();

jl1=new JLabel("你的籍贯:");
jl2=new JLabel("旅游地点:");

String[] jg={"北京","上海","天津","火星"};
jcb=new JComboBox(jg);

String[] dd={"长城","东方明珠","海河","什么什么"};
jl=new JList(dd);
//设置你希望显示多少个选项
jl.setVisibleRowCount(2);//滚动条显示setVisibleRowCount(?)?为显示条数
jsp=new JScrollPane(jl);

//设定布局
this.setLayout(new GridLayout(3, 1));

//加入组件
jp1.add(jl1);
jp1.add(jcb);

jp2.add(jl2);
jp2.add(jsp);

this.add(jp1);
this.add(jp2);

//设置窗体
this.setTitle("用户注册");
this.setSize(300, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

x

1

/**

2

* 下拉框(JComboBox)/列表框(JList)/滚动空格(JScrollPane)的使用

3

*/

4

import java.awt.*;

5

import javax.swing.*;

6

public class Window008 extends JFrame{

7

    //定义组件

8

    JPanel jp1,jp2;

9

    JLabel jl1,jl2;

10

    JComboBox jcb;

11

    JList jl;

12

    JScrollPane jsp;

13

    public static void main(String[] args) {

14

        Window008 win=new Window008();

15

    }

16

    //构造函数

17

    public Window008(){

18

        //建立组件

19

        jp1=new JPanel();

20

        jp2=new JPanel();

21

        

22

        jl1=new JLabel("你的籍贯:");

23

        jl2=new JLabel("旅游地点:");

24

        

25

        String[] jg={"北京","上海","天津","火星"};

26

        jcb=new JComboBox(jg);

27

        

28

        String[] dd={"长城","东方明珠","海河","什么什么"};

29

        jl=new JList(dd); 

30

        //设置你希望显示多少个选项

31

        jl.setVisibleRowCount(2);//滚动条显示setVisibleRowCount(?)?为显示条数

32

        jsp=new JScrollPane(jl);

33


34

        //设定布局

35

        this.setLayout(new GridLayout(3, 1));

36

        

37

        //加入组件

38

        jp1.add(jl1);

39

        jp1.add(jcb);

40

        

41

        jp2.add(jl2);

42

        jp2.add(jsp);

43

        

44

        this.add(jp1);

45

        this.add(jp2);

46

        

47

        //设置窗体

48

        this.setTitle("用户注册");

49

        this.setSize(300, 300);

50

        this.setLocationRelativeTo(null);

51

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

52

        this.setVisible(true);

53

    }

54

}

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/xuxaut-558/p/10045687.html

时间: 2024-10-08 23:58:55

JAVA入门到精通-第31讲-常见组件的相关文章

JAVA入门到精通-第94讲-山寨QQ项目8-好友在线提示

遇到的问题: 现在每登录一个人,后面的人是能看到前面的登录的人的: 但是,前面的人看不到后面的人登录: //后面每登录一个人,有责任去通知前面登录的人他已经上线了: 通知了完以后,需要更改好友在线的情况: //不让同一个账号反复登录 //如果 好友不在线,则不能聊天 ================================ [ManageQqChat.java] /** * 这是一个管理用户聊天界面的类 */ package com.qq.client.tools; import jav

JAVA入门到精通-第36讲-事件监听-坦克大战4

Java事件处理机制:  事件源:事件:事件监听者:事件处理方法:  任何一个类,只要实现了相应的接口,就可以去监听某个事件源: 一个类要实现监听的基本步骤:  a.实现相应的接口[KeyListener,MouseListener,ActionListener,WindowListener] b.把接口的处理方法根据需要重新编写(override) c.在事件源注册监听 d.事件传递是靠事件对象 通过ActionEvent传递事件: 通过事件进行委派事件模型进行事件处理:  一个事件源可能会生

JAVA入门到精通-第45讲-IO编程

image1=ImageIO.read(new File("bomb_1.gif")); 图片拷贝: 输入流和输出流同时要用的问题: 图片读入到内存: 写入,输出到某个文件: 二进制文件,字节流完成: FileInputStream fis=new FileInputStream("xxxx.jpg"); 输出到指定文件:FileOutputStream  fos=null; 关闭打开的文件流: -----------------------------------

JAVA入门到精通-第33讲-绘图技术.坦克大战1

    用的是Access数据库,安全性不够好,性能也不够强大:   躲在这里,坦克很少过来,做了一个随机数: 把得分的记录保存在数据库里面: SQLServer2005中型数据库:    (x,y)坐标:     800x600:     表示计算机屏幕上的每一行由800个点组成,共有600行:   共有480000个像素:   java绘图技术:   绘图一般在JPane上画: 覆盖JPanel的paintat方法 Graphics是一个图形画笔类,绘图的重要类,可以理解为一只画笔 supe

JAVA入门到精通-第72讲-学生管理系统4-model 2模式(1)

删除.查询.添加.修改: -修改: 每个字段都可能修改: //给?赋值 //在prepareStatement语句后面赋值才好用 //修改完了,更新数据 目前为止,已经完成了增删改查-Model1模式 最大特点: 界面和业务逻辑操作是放在一起的: 优点:简单,开发方便: 缺点:代码复用性不高: 中大型项目可读性差,可维护性不高: 前台后端混杂在一起的: 比如:"数据库密码换了, 所有涉及到数据库的地方都需要发生变化" =================================

JAVA入门到精通-第32讲-swing编程实战

 JBorderLayout,左边是JList,拆分窗格: 图片是放在JLabel上的,图片的地址写好就行:  在相关项目下面建立一个文件夹Folder,放置图片:或者复制粘贴:   拆分:水平拆分?垂直拆分?    拆分之后把jList和jl1这两个组件放进去: 可以伸缩:  在窗口左上角出现自己的图标? Border布局: 多行文本框带滚动条,聊天窗口可滚动:   加入QQ左上角图标:      转成图片,getImage; Border布局很有用, CENTER会被自动挤满:  QQ号码.

JAVA入门到精通-第38讲-线程-坦克大战6

 应用程序在内存中开辟空间-进程: 内存-大脑容量:  反应切换的速度-CPU: 试图去尝试别的进程的地址空间---病毒: 线程是由进程(应用程序)创建的: 涉及到并发,就会涉及到线程:迅雷下载:      线程不会跑出到进程外面去的: 地址空间是由操作系统和JVM决定的: 32/64位,CPU的寻址空间范围,加载内存的大小:  线程的调度:  CPU.内存资源OK?--->Running,运行状态: 运行过程CPU,内存不够---->Blocked,阻塞状态: 资源空闲,可用-------&

JAVA入门到精通-第35讲-事件处理-坦克大战3

画出弧形: g.drawArc: 前两个参数:代表中心点,后面代表宽,高,后面是弧度的大小:  50代表弧度,后面方向:    SWING编程三个部分: (1)组件和布局管理器: (2)绘图技术: (3)事件处理机制:  鼠标,键盘按下的某个按钮或者移动等都是事件: JAVA认为,消息是一种事件对象:事件监听者也是一个类: 事件监听者中有函数或者方法专门去处理事件: import  java.awt.Event.*; 需要对事件进行处理,把Event包带进去:  Border布局中间是 默认的:

JAVA入门到精通-第44讲-IO编程

//FileOutputStream的使用 准备把它输出到d:\\ss.txt 文件, 文件不存在直接创建: 如果存在,可能会被覆盖: //字节流 FileOutputStream fos=null; //输出-Output-离开内存-Output/Write //如何把string转换成bytes数组: s.getBytes() //关闭文件流 //两个字符串的换行 world\r\n \r\n就是回车换行的意思 ----------------------------------------