Swing常用组件

Swing 常用组件

面板组件

说明: Swing 组件中提供了一些面板组件(中间容器),这些面板组件不能单独存在,只能放置在顶级窗口容器中。
常见组件:
JPanel: JPanel 面板组件是个无边框,不能被移动、放大、缩小或者关闭的面板,它的默认布局管理器是 Flowlayout
JScrollPane: JScrollPane 是一个带有滚动条的面板容器,且只能添加一个组件,想向了 Scroll Pane 面板中添加多个组件,应先将这多个组件添加到某个组件中,然后再将这个组件添加到JScrollPane 中。
我们来先创建一个窗体:

		JFrame jf=new JFrame("面板组件");
		jf.setBounds(100, 200, 300, 400);

并且设置它的长、宽以及位置。

		//1.创建带有滚动条的空面板
		JScrollPane jScrollPane=new JScrollPane();
		
		//2.设置水平滚动条策略——当组件超过了窗体大小,显示滚动条
		jScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		
		//3.设置竖直滚动条策略——设置滚动条一直存在
		jScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		
		//4.创建JPanel,存储多个组件
		JPanel panel=new JPanel();
		panel.add(new JButton("按钮1"));
		panel.add(new JButton("按钮2"));
		panel.add(new JButton("按钮3"));
		panel.add(new JButton("按钮4"));
		
		//5.将组织好的额一个panel组件,整个添加都带有滚动条的面板当中
		jScrollPane.setViewportView(panel);
		
		jf.add(jScrollPane,BorderLayout.CENTER);
		
		jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);;
		jf.setVisible(true);

运行的效果是这样的:
在这里插入图片描述

文本组件

**定义:**文本组件用于接收用户输入的信息,包括文本框(JTextField).文本域(JTextArea)等
说明:它们都有一个共同父类了 Text Component. Next Component 是个抽象类。

文本组件——JTextField
定义: JTextField 称为文本框,它只能接收单行文本的输入
说明: JTextField有一个子类了 JPasswordField,表示一个单行输入密码框。在此框中是通过显示指定的回显字符作为占位符,新创建的密码框默认的回显字符为“*”。

文本组件-JTextArea
定义: JTextArea称为文本城,它能接收多行文本的输入,使用了 Text Area 构造方法创建对象时可以设定区域的行数列数

		//创建容器窗体
		JFrame jf=new JFrame("洪希的文本组件");
		jf.setBounds(100, 200, 400, 400);
		
		//设置布局为边界布局
		jf.setLayout(new BorderLayout());
		
		//2.创建聊天记录的JTextArea
		JTextArea showArea=new JTextArea(12,25);
		showArea.setEditable(false);
		
		//2.1创建滚动条的面板组件
		JScrollPane jScrollPane=new JScrollPane(showArea);
		
		//3.创建文本输入框JTextField
		JTextField text =new JTextField(15);
		
		//4.创建发送按钮
		JButton btn=new JButton("发送");
		
		//5.为按钮注册监听事件
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// 获取文本框中的数据
				String content=text.getText();
				if (content!=null && content.length()!=0) {
					showArea.append("本人输入信息为:"+content+"\r\n");
				}else {
					showArea.append("发送内容不得为空"+"\r\n");
				}
				text.setText("");
			}
		});
		//6.创建提示标签
		JLabel jLabel=new JLabel("聊天信息");
		
		JPanel panel=new JPanel();
		panel.add(jLabel);
		panel.add(text);
		panel.add(btn);
		
		jf.add(panel,BorderLayout.PAGE_END);
		jf.add(showArea,BorderLayout.PAGE_START);
		
		jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);;
		jf.setVisible(true);
	

标签组件

**说明:**在 Swing 中常见的按钮组件有 JButton. JCheckBox, JRadioButton 等,它们都是抽象类 JAbstractButton 类的直­接或间接子类。

按钮组件——JCheckBox
说明:JCheckBox 组件被称为复选框组件,它有选中和未选中两种状态,通常复选框会有多个,用户可以选择其中一个或多个。

常用构造方法: JCheckBox (string text, boolean selected)
创建一个带有文本信息,并指定初始状态(选中/未选中)的复选框。
除了上述构造方法,还可以调用从父类继承的 setText (String text)来设置复选框文本信息,调用 set Selected (boolean b) 方法来设置复选框状态(是否被选中)。也可以调用 is Selected ()方法来判断复选框是否被选中,

下拉框组件

定义: JComboBox 组件被称为下拉框或者组合框,它将所有选项折叠在一起,默认显示的是第一个添加的选项,当用户单击下拉框时,
会出现下拉式的选择列表,用户可以从中选择其中一项并显示
说明:JComboBox下拉框组件分为可编辑和不可编辑两种形式。对于不可编辑的下拉框,用户只能选择现有的选项列表。对于可编辑的下拉框,用户既可以选择现有的选项列表,也可以自己输入新的内容。
注意:自己输入的内容只能作为当前项显示,并不会添加到下拉框的选项列表中。

菜单组件——下拉式菜单

**说明:**计算机中很多文件的菜单都是下拉式的,如记事本的菜单。在 Swing 中,创建下拉式菜单需要使用三个组件:

  1. JMenuBar(菜单栏)
  2. JMenu(菜单)
  3. JMenuItem (菜单项)

JMenuBar
JMenuBar表示一个水平的菜单栏,它用来管理一组菜单,不参与同用户的交互式操作。菜单栏可以放在容器的任何位置,但通常情况下会使用顶级容器(如JFrame,JDialog)的 setMenuBar()方法将它放置在顶级容器的顶部。创建菜单栏时,只需要使用 new 关键字创建JMenuBar 对象即可,创建完菜单栏对象后,可以调用它的 add(JMenu c)方法为其添加JMenu 菜单。

JMenu (菜单)
JMenu 表示一个菜单,它用来整合管理菜单项,菜单可以是单层次的结构,也可以是多层次的结构,大多情况下,会使用JMenu (String text)构造函数创建JMenu 菜单,参数 text 表示菜单上的文本内容,

JMenuItem (菜单项)
JMenuItem 表示一个菜单项,它是菜单系统中最基本的组件,通常会使用JMenuItem(String text)这个构造方法为菜单项指定文本内容。
JMenuItem 继承自 AbstractButton 类,因此可以把它看成是一个按钮。
如果使用无参的构造方法创建了一个菜单项,则可以调用AbstractButton 类中继承的 setText(String text)方法和 setIcon 方法为其设置文本和图标

		JFrame jf=new JFrame("弹窗");
		jf.setBounds(100, 200, 300, 400);
		jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
		jf.setVisible(true);
		
		//1、创建弹出式菜单对象
		JPopupMenu popupMenu=new JPopupMenu();
		
		//2、创建两个菜单项
		JMenuItem item1=new JMenuItem("查看");
		JMenuItem item2=new JMenuItem("刷新");
		
		//3、将菜单项加入菜单当中,并且加入分隔符
		popupMenu.add(item1);
		popupMenu.addSeparator();
		popupMenu.add(item2);
		
		//4、为JFrame窗体添加鼠标事件
		jf.addMouseListener(new MouseAdapter() {
			@Override           //打出mouseClicked 按下回车,自动出来
			public void mouseClicked(MouseEvent e) {
				if (e.getButton()==MouseEvent.BUTTON3) {
					popupMenu.show(e.getComponent(), e.getX(), e.getY());          //invoker的地方固定值e.getComponent()
				}
			}
		});

效果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值