[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を(文書ドキュメント, 文字列のテキスト, 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 (デフォルトは左マージンであります), Enterキーを押すと、それは上に入力したデータが表示されます 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型selectionEndに) 選択したテキストに位置し、仕上げを開始する場所. 方法がないと、テキストはカーソルの現在位置からsetSelectionStartを選択します (小さいselectionEndに) selectionEndにします. 方法がないと、テキストはカーソルの現在位置にたselectionStartの場所からsetSelectionEndを選択します (大きいたselectionStart).
getCaretPosition() そして、setCaretPosition(ポジション) カーソルの現在位置を取得して設定.

参照する: クラスのJTextField, JTextFieldを使用します