Java Tutorial/Swing Event/CaretListener — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 18:18, 31 мая 2010
Caret Events and Listeners
Whenever a caret changes its position or if text is selected, a caret event is fired by a text component. The class CaretEvent supports the methods getDot() and getMark() to retrieve the current location and the end position of a text selection, respectively.
<source lang="java">
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; public class CaretEeventListener {
public static void main(String[] a) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTextField textField = new JTextField(); textField.addCaretListener(new CaretListener() { public void caretUpdate(CaretEvent e) { System.out.println(e); } }); frame.add(new JScrollPane(textField)); frame.setSize(300, 200); frame.setVisible(true); }
}</source>
Listen to CaretEvent with CaretListener
<source lang="java">
import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; public class Main implements ActionListener {
JTextField jtf = new JTextField(10); JButton jbtnGetTextUpper = new JButton("Get Text In Uppercase"); Main() { JFrame jfrm = new JFrame("Demonstrate a Text Field"); jfrm.setLayout(new FlowLayout()); jfrm.setSize(240, 140); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jtf.setActionCommand("TF"); jtf.addActionListener(this); jbtnGetTextUpper.addActionListener(this); jtf.addCaretListener(new CaretListener() { public void caretUpdate(CaretEvent ce) { System.out.println("Text in real time: " + jtf.getText()); } }); jfrm.add(jtf); jfrm.add(jbtnGetTextUpper); jfrm.setVisible(true); } public void actionPerformed(ActionEvent ae) { if (ae.getActionCommand().equals("TF")) { System.out.println("ENTER key pressed: " + jtf.getText()); } else { String str = jtf.getText().toUpperCase(); System.out.println("Button pressed: " + str); } } public static void main(String args[]) { new Main(); }
}</source>