作业要求

1.任选一种Swing组件(不能是JButton,JLabel)
介绍这个Swing组件的使用
当这个Swing组件作为事件源时,用户可以怎样和这个组件进行交互(键盘,鼠标的交互都可以)
编写范例代码说明并且使用文字进行说明
作业:
(一)JTextField的(文本框)使用:

JTextField 是一个轻量级组件,它允许编辑单行文本。

1.JTextField的常用构造方法:
JTextField() :构造一个新的 TextField。
JTextField(int columns): 构造一个具有指定列数的新的空 TextField。
JTextField(String text) :构造一个用指定文本初始化的新TextField。
JTextField(String text, int columns): 构造一个用指定文本和列初始化的新TextField。

2.JTextField的常用方法:
SetText(string): 设置文本域中的文本值
GetText():返回文本域中的输入文本值
getColumns():返回文本域的列数
setEditable(Boolean): 设置文本域是否为只读状态

3.JTextField的使用示例:

代码如下图:

package project;

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

public class JTextFieldDemo {
    JFrame jf;
    JPanel jp;
    JTextField jtf1,jtf2,jtf3,jtf4;
    public JTextFieldDemo() {
        jf = new JFrame("JTextField");
        Container contentPane = jf.getContentPane();
        contentPane.setLayout(new BorderLayout());
        jp = new JPanel();
        jtf1 = new JTextField();
        jtf2 = new JTextField(10);
        jtf3 = new JTextField("用户指定文本");
        jtf4 = new JTextField("指定内容+指定长度(只读状态)",30);
        jtf3.setEnabled(false);
        jtf4.setFont(new Font("谐体",Font.BOLD|Font.ITALIC,16));
        //设置文本的水平对齐方式
        jtf4.setHorizontalAlignment(JTextField.CENTER);
        jp.add(jtf1);
        jp.add(jtf2);
        jp.add(jtf3);
        jp.add(jtf4);
        contentPane.add(jp);
        jf.pack();
        jf.setLocation(400, 200);
        jf.setVisible(true);
        jf.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    public static void main(String[] args) {
        new JTextFieldDemo();
    }
}

结果如图:

Java 对文书插入域_Java 对文书插入域

此时,用户可以通过鼠标选择键盘数输入位置,键盘在空白处或者制定位置输入。
二:JTextArea(文本区)的使用:
1.JTextArea的常用构造方法:
(1)JTextArea() 构造新的 TextArea,例如:

JTextArea t1 = new JTextArea();

(2)JTextArea(String text) 构造显示指定文本的新的 TextArea,例如:

JTextArea t2` = new JTextArea(2, 8)

(3)JTextArea(int rows, int columns) 构造具有指定行数和列数的新的空 TextArea,例如:

JTextArea t3 = new JTextArea("JTextArea3");

(4)JTextArea(String text, int rows, int columns) 构造具有指定文本、行数和列数的新的 TextArea,例如:

JTextArea t4 = new JTextArea("JTextArea4", 5, 10);

2.JTextArea的常用方法:

1.t1.setText("JTextArea1");:setText()设置文本显示的内容

2.t2.append("JTextArea2");: append()方法会将给定文本追加到文档结尾。

3.t4.setLineWrap(true);:设置文本区的换行策略。

4.t4.setFont(new Font("标楷体", Font.BOLD, 16));:设置当前字体。

5.t4.setTabSize(2);:使用setTabSize()方法设置[Tab]键的跳离距离.

3.JTextArea使用的案例:

代码如下:

package project;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

//实现接口ActionListener
public class JTextAreaDemo implements ActionListener {
    JFrame jf;
    JPanel jpanel;
    JButton jb1, jb2, jb3;
    JTextArea jta = null;
    JScrollPane jscrollPane;
    public JTextAreaDemo() {
        jf = new JFrame("作业3");
        Container contentPane = jf.getContentPane();
        contentPane.setLayout(new BorderLayout());
        jta = new JTextArea(10, 15);
        jta.setTabSize(4);
        jta.setFont(new Font("标楷体", Font.BOLD, 16));
        jta.setLineWrap(true);// 激活自动换行功能
        jta.setWrapStyleWord(true);// 激活断行不断字功能
        jta.setBackground(Color.blue);
        jscrollPane = new JScrollPane(jta);
        jpanel = new JPanel();
        jpanel.setLayout(new GridLayout(1, 3));
        jb1 = new JButton("复制");
        jb1.addActionListener(this);
        jb2 = new JButton("粘贴");
        jb2.addActionListener(this);
        jb3 = new JButton("剪切");
        jb3.addActionListener(this);
        jpanel.add(jb1);
        jpanel.add(jb2);
        jpanel.add(jb3);
        contentPane.add(jscrollPane, BorderLayout.CENTER);
        contentPane.add(jpanel, BorderLayout.SOUTH);
        jf.setSize(400, 300);
        jf.setLocation(400, 200);
        jf.setVisible(true);
        jf.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    // 覆盖接口ActionListener的方法actionPerformed
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jb1) {
            jta.copy();
        } else if (e.getSource() == jb2) {
            jta.paste();
        } else if (e.getSource() == jb3) {
            jta.cut();
        }
    }
    public static void main(String[] args) {
        new JTextAreaDemo();
    }
}

运行结果显示:

Java 对文书插入域_文本域_02

此时电脑复制的是B20170302132,用户可以通过鼠标点击下面三个按键实现相应功能。

文本框(JTextField)和文本域(JTextArea)的使用方法介绍完成,作业完毕。