0
点赞
收藏
分享

微信扫一扫

Swing程序设计(10)列表框,文本框,文本域,密码框

月孛星君 2024-02-23 阅读 14

文章目录


前言


一、列表框

        列表框(JList)相比下拉框,自身只是在窗体上占据固定的大小。如果需要完全显示列表框信息,可以将列表框添加于滚动面板中。

        JList常用的构造方法如下:

        第一种方法:直接实例化,之后用setListData()方法添加对象

public void JList();
//初始化列表框对象后,使用 setListData()方法添加对象

         实例展示:

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

public class MyList extends JFrame{
public MyList(){
Container c = getContentPane();

//核心代码以下
JList<String> jl = new JList<>();
String str[] ={"列表1","列表2","列表3","列表4"};
jl.setListData(str);
//使用该方法设置列表数据,引用对象应为数组类型

c.add(jl);

setBounds(100,100,100,100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MyList my = new MyList();
}
}

         运行结果:

        第二种方法: 在实例化JList列表框时,直接引用,数组类型的变量,至列表中。

public void JList(Object[] listDate);
//直接在JList实例化时,引用数组类型的对象,填充列表框

         与其他代码大差不差,核心代码差别为下:

String str[] ={"列表1","列表2","列表3","列表4"};

JList<String> jl = new JList<>(str);
//创建数组后直接添加于列表框之中

        运行结果一样

         第三种方法:在实例化JList列表框时,直接引用,向量类的对象,至列表中。

public void JList(Vector listDate);

         核心代码差别为下:

Vector<String> contents = new Vector<>();
//列表框中引用了Vector对象
JList<String> jl = new JList<>(contents);

//随时添加新的列表数据
contents.add("列表1");
contents.add("列表2");
contents.add("列表3");
contents.add("列表4");

         运行结果:

        第四种方法:在实例化JList列表框时,实例化ListModel类,至列表中 

public void JList(ListModel dateModel);

           实例展示:

public class MyList extends JFrame{
public MyList(){
Container c = getContentPane();

JList<String> jl = new JList<>(new MyListModle());
//实例化JList列表框时,实例化ListModel类

c.add(jl);

setBounds(100,100,100,100);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

//创建列表模型,继承抽象类,实现两个抽象方法
class MyListModle extends AbstractListModel<String>{

private String contents[] ={"列表1","列表2","列表3","列表4"};

public String getElementAt(int x){ //JList类会在内部调用这个方法,获取列表的每个元素
if(x<contents.length){
return contents[x++];
}else{
return null;
}
}

public int getSize(){
return contents.length;
}
}

         运行结果:

二、文本框(域)

        1.文本框

        文本框(JTextField)是用于显示或编辑一个单行文本框体。

        JTextField常用构造方法如下:

        实例展示:

//···········省略代码··················

JTextField jt = new JTextField("你好");

//···········省略代码··················

 

        2.文本域

        文本域(JTextArea)即为一个文本文件,可以任意输入内容。

        JTextArea常用的构造方式如下:

        实例展示:

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

public class MyJTextArea extends JFrame{
public MyJTextArea(){
Container c = getContentPane();

JTextArea jt = new JTextArea("文本域",6,6);
jt.setLineWrap(true); // setLineWarp()方法 可以实现自动换行 触边换行

c.add(jt);

setBounds(100,100,100,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MyJTextArea my = new MyJTextArea();
}
}

        运行结果:

三、密码框

         

        密码框(JPasswordField)与文本框唯一不同的是,密码框将用户输入的字符串以某种符号进行加密,使用 setEchoChar() 方法可以改变密码框的回显字符。

        JPasswordField常用的构造方法如下:

        实例展示:

//*********省略代码***********

JPasswordField jp = new JPasswordField( "1234");
//创建了一个有输入内容,显示为****

jp.setEchoChar('#');
//回显字符由‘*’变为‘#’,显示为了####

//*********省略代码***********

        输出结果:

 


总结

        该篇提供了一些关于“框”的代码,使用这些框是前端的基础,只有记住这些框的名字即可,再实例化后,添加进容器对象,其他的代码基本不会改变。

举报

相关推荐

0 条评论