[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方法
你怎么会错?