[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メソッドを使用できないのはなぜですか
どのようにあなたをエラーにしますか?