[JavaSwing] 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を(): 新しい作成 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のからメソッドを使用します の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
}
}

以下のような JButtonの, JTextFieldののイベントも再びマウス、さらにはキーボードのキーをキャッチ. 我々が使用する方法のキーイベントを取得するには addKeyListener() そして、同じ操作を行います イベントをキャプチャするJButton しかし、と のKeyListener ないのActionListenerと.
方法を使用して setHorizontalAlignment JTextFieldのに整列させます.
いくつかの他の方法
getSelectedText(): JTextFieldの中で選択したテキストをつかみます
setSelectionStart(int型たselectionStart) そして、setSelectionEnd(int型selectionEndに) 選択したテキストに位置し、仕上げを開始する場所. 方法がないと、テキストはカーソルの現在位置からsetSelectionStartを選択します (小さいselectionEndに) selectionEndにします. 方法がないと、テキストはカーソルの現在位置にたselectionStartの場所からsetSelectionEndを選択します (大きいたselectionStart).
getCaretPosition() そして、setCaretPosition(ポジション) カーソルの現在位置を取得して設定.
参照する: クラスのJTextField, JTextFieldを使用します



私は段落を聞いてみましょう ("Ok") すなわち、なぜ先生 ? 私はそれは少し奇妙見つけます.
なぜ私が辞めなければならないときJFrame.EXIT_ON_CLOSE先生のJFrame. すべてが大丈夫走ります ?
コードはJFrameのクラスであるため、廃棄されました, 他のクラスのコードであれば、必要な新しいJFrameの呼び出し.
加えます(新しいJButton(“OK”));
OKボタンを追加
trong jdk 11 setActionCommandメソッドを使用できないのはなぜですか
どのようにあなたをエラーにしますか?