[JavaSwing] JTextField的

内容
创建简单的JTextField
拍摄, 从JTextField中的数据集
对齐和捕获的JTextField事件
其他的一些方法

JTextField的 是一种功能,允许用户输入文本行. 通常用于与简要信息数据录入.
JTextField的
在上图中,我们有 4 的JTextField以允许用户输入 4 相应的信息 4 的JLabel 在左侧.

例 1: 创建简单的JTextField

package nguyenvanquan7826.JTextField;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class MyJTextField extends JFrame {
	public MyJTextField() {
		// create JFrame
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(2, 1, 5, 5));

		// create and add JTextField
		JTextField tf = new JTextField(20);
		add(tf);

		// add a JButton
		add(new JButton("Ok"));

		// Display JFrame
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}

	public static void main(String[] args) {
		new MyJTextField();
	}
}

创造了JTextField
JTextField的构造
– JTextField的(): 创造新 1 JTextField的
JTextField的(DOC文档, 文本字符串, INT列): 创建 1 使用文本存储模型文本和列的JTextField (coloumns)
JTextField的(INT列): 创建JTextField的宽度栏空白
JTextField的(文本字符串): 与给定的文本创建的JTextField
JTextField的(文本字符串, INT列): JTextField中的文字和给定的宽度创建.

例 2: 拍摄, 从JTextField中放置和处理数据

在这个例子中,我们会做 1 小的演示像所有的开放形象, 更 1 JButton的 重新输入数据 – 一个演示计算的利息 (没有通知如果数据是错误的,但会自动跳转到了JTextField,如果它没有数据).

package nguyenvanquan7826.JTextField;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class TienLai extends JFrame implements ActionListener {
	private JTextField tfTienGui, tfLaiXuat, tfThang, tfTienLai;

	public TienLai() {
		// ------------ create JFrame ------------ //
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(5, 2, 5, 5));

		// ------------ add content ------------ //

		int size = 15;
		add(new JLabel("Tiền gửi"));
		tfTienGui = new JTextField(size);
		add(tfTienGui);

		add(new JLabel("Lãi xuất / Tháng"));
		tfLaiXuat = new JTextField(size);
		add(tfLaiXuat);

		add(new JLabel("Tháng"));
		tfThang = new JTextField(size);
		add(tfThang);

		add(new JLabel("Tiền lãi"));
		tfTienLai = new JTextField(size);
		tfTienLai.setEditable(false);// khong cho phep nhap du lieu
		add(tfTienLai);

		add(createJButton("Tính"));
		add(createJButton("Nhập lại"));

		// ------------ display ------------
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}

	private JButton createJButton(String buttonName) {
		JButton btn = new JButton(buttonName);
		btn.addActionListener(this);
		return btn;
	}

	public static void main(String[] args) {
		new TienLai();
	}

	private void process() {
		// check data
		String text = tfTienGui.getText();
		double tienGui = 0, tienLai = 0, thang = 0, laiXuat = 0;

		// tien gui
		if (text.equals("")) {
			tfTienGui.requestFocus(); // nhay den de nhap tien gui
		} else {
			tienGui = Double.parseDouble(text);

			// lai xuat
			text = tfLaiXuat.getText();
			if (text.equals("")) {
				tfLaiXuat.requestFocus(); // nhay den de nhap lai xuat
			} else {
				laiXuat = Double.parseDouble(text);

				// thang
				text = tfThang.getText();
				if (text.equals("")) {
					tfThang.requestFocus(); // nhay den de nhap thang
				} else {
					thang = Integer.parseInt(tfThang.getText());
				}
			}
		}

		// process data
		double lai = tienGui * laiXuat * thang;
		tfTienLai.setText(String.valueOf(lai)); // hien thi ket qua
	}

	private void clear() {
		tfTienGui.setText("");
		tfTienGui.requestFocus(); // nhay ve de nha tien gui
		tfLaiXuat.setText("");
		tfThang.setText("");
		tfTienLai.setText("");
	}

	// methods of ActionListener
	@Override
	public void actionPerformed(ActionEvent evt) {
		String command = evt.getActionCommand();
		if (command == "Tính") {
			process();
		}
		if (command == "Nhập lại") {
			clear();
		}
	}
}

得到的JTextField的数据
非常了不起的
要检索数据 (有实际上是一个串) 我们使用的JTextField方法 的getText().
要订购数据 我们使用的JTextField的方法 的setText(文本字符串).
方法requestFocus的() 帮助光标跳到 (集中) 这个JTextField中.
方法setEditable(布尔编辑) 获得进口数据的JTextField或未设置.

例 3: 对齐和创建事件的JTextField

在这个例子中,我们将创建 1 JTextFiel,当他们进入我们的文本是右对齐 (默认值是左旁), 当你按下回车键,就会显示进入到数据 1 的JLabel.

package nguyenvanquan7826.JTextField;

import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class AlignAndAction extends JFrame implements KeyListener {

	private JTextField tf;
	private JLabel lb;

	public AlignAndAction() {
		createJFrame();
		addContent();
		displayJFrame();
	}

	// create JFrame
	private void createJFrame() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(2, 1, 5, 5));
	}

	// display JFrame
	private void displayJFrame() {
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}

	private void addContent() {
		tf = new JTextField(20);
		tf.setHorizontalAlignment(JTextField.RIGHT);// can trai
		tf.addKeyListener(this);
		add(tf);

		lb = new JLabel("Not data");
		add(lb);
	}

	private void updateData() {
		lb.setText(tf.getText());
	}

	public static void main(String[] args) {
		new AlignAndAction();
	}

	@Override
	public void keyPressed(KeyEvent e) {// nhan vao phim
		if (e.getKeyCode() == KeyEvent.VK_ENTER) {
			updateData();
		}
	}

	@Override
	public void keyReleased(KeyEvent e) { // nha phim ra
	}

	@Override
	public void keyTyped(KeyEvent e) { // nhap 1 phim
	}
}

抓事件的JTextField
JButton的, JTextField的事件也引起了鼠标甚至键盘按键再次. 为了让我们使用的方法的关键事件 addKeyListener() 并执行相同 捕捉事件的JButton的KeyListener 不是的ActionListener.
使用方法 setHorizo​​ntalAlignment 要对齐JTextField的.

其他的一些方法

getSelectedText(): 抢JTextField中选定的文本
setSelectionStart(INT selectionStart) 和setSelectionEnd(INT选定结束) 把首发位置,并完成所选文本. 没有方法,文本将从光标的当前位置来选择setSelectionStart (较小的选定结束) 到选定结束. 没有方法,该文本将被选择setSelectionEnd从SelectionStart位置到光标的当前位置 (更大的SelectionStart).
getCaretPosition() 和setCaretPosition(位置) 检索和设置的光标的当前位置.

请参阅: 一流的JTextField, 使用的JTextField