Java Cursor(İmleç) Pozisyonunu Güncelleme
29-03-2014
setCaretPosition() ve requestFocus() metodları kullanılarak, JTextArea, JTextField gibi Java Swing elemanları ile yapılan işlemlerde cursor(imlec)'un dilediğimiz yerde olmasını sağlar. Bu özellik sayesinde örneğin içeriğe göre arama yapan bir uygulama geliştirirken imlecin bulunan kelimenin üzerinde olmasını sağlayabiliriz.
Örnek:
Bu uygulama calistirildigi zaman JTextField içeriğinde yer alan kelimeler arasında arama yapılması sağlanır. Bulunan kelimenin başlangıcında imleç gözükmüş olur.
Örnek:
public class TestCursor extends JFrame{ private JTextArea txtContent; private JTextField txtSearch; public TestCursor(){ setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setLayout(new BorderLayout()); txtContent= new JTextArea(30, 100);//30 satir 100 sutunlu bir text area olusturulur txtContent.setLineWrap(true); txtContent.setTabSize(2);//Tab tusunun kac karakter olacagi belirtildi txtContent.setMargin(new Insets(10, 10, 10, 10)); //tum kenarlardan 10px lik bosluk birakilir JScrollPane scrollPane = new JScrollPane(); scrollPane.setViewportView(txtContent); JPanel pnlSouth=new JPanel(); pnlSouth.setBorder(new LineBorder(new Color(0,0,0))); JButton btnSearch=new JButton("Ara"); btnSearch.addActionListener(new SearchContent()); txtSearch=new JTextField(20); pnlSouth.add(txtSearch); pnlSouth.add(btnSearch); add(pnlSouth, BorderLayout.SOUTH); add(scrollPane,BorderLayout.CENTER); pack(); setLocationRelativeTo(null); setVisible(true); } private class SearchContent implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { String toBeSearched=txtSearch.getText(); int caretPosition=txtContent.getText().indexOf(toBeSearched); txtContent.setCaretPosition(caretPosition); //imlecin guncellenen caret pozisyonunda gozukmesini saglar. //Bu metod kullanilmasaydi, caret pozisyonu guncellenmesine ragmen imlec gozukmezdi txtContent.requestFocus(); } } public static void main(String[] args) { new TestCursor(); } }
Bu uygulama calistirildigi zaman JTextField içeriğinde yer alan kelimeler arasında arama yapılması sağlanır. Bulunan kelimenin başlangıcında imleç gözükmüş olur.