学习笔记NO.4

本文主要介绍了Java Swing程序设计,包括面板、滚动面板、按钮组件、单选按钮、复选框、列表框和文本组件的使用。此外,还详细讲解了多线程的概念,如实现方式、生命周期、操作方法、线程同步和优先级。最后,深入探讨了集合类,如Collection接口、List、Set和Map的实现与操作。
摘要由CSDN通过智能技术生成

Swing程序设计

面板
  1. Jpanel面板
    面板也是容器的一种,先把东西添加到面板内。然后把面板添加到容器内。

Jpanel p1=new Jpanel(布局类);
c.add(p1);

  1. JscorlPane面板
    遇到较小的容器窗体要显示较大部分内容的时候,可以使用这个面板,带滚动条。他也是一个容器,但是只能放一个组件,要是需要在面板方多个组件,就需要先把组件放在Jpanel面板上,然后把Jpanel作为一个整体放在JScorlPane上。

Container c=getContentPane();//创建容器
JTxtArea ta=new JTextArea(20,50);//创建文本区域组件
JScrollPane sp=new JScrollPane(ta);//创建面版对象
c.add(sp);//添加到容器里面

  1. 按钮组件
    ==提交按钮组件,==有下列几种构造方法
    public JButton();
    public JButton(String text);
    public JButton(Icon icon);
    public JButton(String text,Icon icon);
    setEnabled(false)可以设置这个按钮无效。
    setIcon为这个按钮指定一个图标。
    单选按钮组件
    有以下常用构造方法
    public JRadioButton();
    public JRadioButton(Icon icon);
    public JRadioButton(Icon icon,boolean selected);selexted用于设置这个选项
    是否提前选定
    public JRadioButton(String text);
    public JRadioButton(String text.Icon icon);
    public JRadioButton(String text,Icon icon,boolean selexted);
    按钮组:ButtonGroup类,把按钮放进去的话同时只能选一个了。然后再把按钮组放到容器。
    isselected可以读取这个是被选中
    复选框组件
    常用构造方法
    public JCheckBox();
    public JCheckBox(Icon icon,boolean check);
    public JCheckBox(String text,boolean checked);
    getText()方法可以得到这个按钮的名字之类;
  2. 列表框
    =下拉列表框==
    常用构造方法
    public JComboBox();
    public JComboBox(ComboBoxModel dateModel);
    public JComboBox(Objext[]arryDate);
    public JComboBox(Vector vector);下拉列表框的内容可以封装在ComboBox类型,数组或vector类型中。
    JComboBox模型

String arr[]= {“3”,“2”,“1”};
JLabel jl=new JLabel(“asdsss”);
JComboBox jc=new JComboBox<>();
ComboBoxModel cm=new DefaultComboBoxModel<>(arr);
jc.setModel(cm);

两个可以分别得到列表选中的索引和值
System.out.println(“num:”+jc.getSelectedIndex());
System.out.println(“内容”+jc.getSelectedItem());

列表框组件
常用构造方法
public void JList();
public void JList(Object[]listData);
public void JList(Vector listData);
public void JList(ListModel dataModel);
可以使用数组初始化列表框
也可以使用vector类型数据初始化列表框

.
Vector contents =new Vector();
JList ji=new JList(contents);
contents.add(“1”);
contents.add(“2”);
contents.add(“3”);

也可以使用模型

String arr[]= {“3”,“2”,“1”,“sd”,“asj”,“shxb”,“sbxj”,“agsz”,“shxn”};
JListjc=new JList<>();
DefaultListModel mo=new DefaultListModel<>();
for(String tmp:arr) {//向列表载入数据
mo.addElement(tmp);
}
好处是可以再添加其他的

可以设置选择的样子
jc.setSelectionModel(ListSelectionModel.SINGLE_SELECTION);只能单选
SINGLE_INTERVAL_SELECTION;只能连着选
MULTIPE_INTERVAL_SELECTION;随便选
用事件监听器得到选中的内容

btn.addActionListener(new ActionListener() {
   
			public void actionPerformed(ActionEvent e) {
   //获得选中的元素
				java.util.List<String> value=jc.getSelectedValuesList();
				for(String tmp:value) {
   
					System.out.println(tmp);
				}
			}
		});
  1. 文本组件
    文本框组件
    构造方法
    public JTextField();
    public JTextField(String arr);
    public JTextField(int fieldwidth);
    public JTextField(String arr,int fieldwidth);
    public JTextField(Document docModel,String arr,int fieldwidth);
    密码框组件
    和文本框类似
    public JPasswordField();
    public JPasswordField(String arr);
    public JPasswordField(int fieldwidth);
    public JPasswordField(String arr,int fieldwidth);
    public JPasswordField(Document docModel,String arr,int fieldwidth);
    然后可以在程序中定义密码框的回显字符
    JPasswordField jp=new JPasswordField();
    jp.setEchoChar(’#’);
    文本域组件
    public JTextArea();
    public JTextArea(String arr);
    public JTextArea(int rows,int colums);
    public JTextArea(Document doc);
    public JTextArea(Document doc,String Text,int rows,int colums);
    setLineWrap()方法可以设置文本域是否自动换行
    6.事件监听器
    动作事件监听器
事件名称 事件源 监听接口 添加或者删除相应类型监听器的方法
ActionEvent JButton,JList,JTextField等 ActionListener addActionListener(),removeActionListioner()

焦点事件监听器

事件名称 事件源 监听接口 添加或者删除相应类型监听器的方法
FocusEvent Component以及派生类 FocusListener addFocusListener(),removeFocusListioner()

在添加监听器的时候,要实现FocusListener接口,这个接口中定义了两个方法,分别为focusLost()和focusGained()方法,前者是组件失去焦点的时候调用的,后者是得到焦点的时候。

第十八章 多线程

1. 实现线程的方法
  1. 继承Thread类
    继承这个类之后,把需要执行的线程放在run方法内,用start()方法执行
  2. 实现Runnable接口,
    1, 建立runnable对象
    2,使用参数为runnable对象的构造方法创建thread实例,
    3,调用start() 方法启动线程
2,线程的生命周期
  1. notify()方法可以将线程唤醒,notifyAll()唤醒所有线程。
3, 线程的操作方法
  1. 线程的休眠
    用Thread.sleep(1000)单位是毫秒
  2. 线程的加入
    用Thread.join();方法,就是停止当前线程,等待加入的线程执行完毕
  3. 线程的中断
    再run()使用无限循环,然后用一个布尔值结束循环。
    注意要抛出异常
4,线程的优先级

setPriority()方法,参数为1-10,不然会异常,有三个常数
t.MIN_PRIORITY;表示1
t.MAX_PRIORITY;表示10
t.NORM_PRIORITY;表示5

5,线程同步
  1. 同步块
    用synchronized修饰代码块
  2. 用上边那个修饰方法
  3. 这样子程序都按照合适的顺序
    相当于排队

第十四章 集合类

1.Collection接口

1.要想取出集合中的数据,要使用迭代器

package com.lzw;

import java.util.*;

public class Muster {
    // 创建类Muster
	public static void main(String args[]) {
   
		Collection<String> list = new ArrayList<>(); // 实例化集合类对象
		list.add("a"); // 向集合添加数据
		list.add("b");
		list.add("c");
		Iterator<String> it = list.iterator(); // 创建迭代器
		while (it.hasNext()) {
    // 判断是否有下一个元素
			String str = (String) it.next(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值