[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的(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方法 的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
}
}

像 JButton的, JTextField的事件也引起了鼠标甚至键盘按键再次. 为了让我们使用的方法的关键事件 addKeyListener() 并执行相同 捕捉事件的JButton 但 的KeyListener 不是的ActionListener.
使用方法 setHorizontalAlignment 要对齐JTextField的.
其他的一些方法
getSelectedText(): 抢JTextField中选定的文本
setSelectionStart(INT selectionStart) 和setSelectionEnd(INT选定结束) 把首发位置,并完成所选文本. 没有方法,文本将从光标的当前位置来选择setSelectionStart (较小的选定结束) 到选定结束. 没有方法,该文本将被选择setSelectionEnd从SelectionStart位置到光标的当前位置 (更大的SelectionStart).
getCaretPosition() 和setCaretPosition(位置) 检索和设置的光标的当前位置.
请参阅: 一流的JTextField, 使用的JTextField



我问这个段落 ("Ok") 那是什么意思 ? 我觉得有点奇怪.
为什么我退出JFrame时需要JFrame.EXIT_ON_CLOSE. 去一切都很好 ?
由于代码在JFrame类中而被放弃, 如果代码在另一个类中,则需要JFrame进行调用.
添加(新的JButton(“行”));
添加一个确定按钮
钟杰克 11 为什么我不能使用setActionCommand方法
你怎么会错?