*
The moose likes Swing / AWT / SWT and the fly likes Enter key functionality on JTextField Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Enter key functionality on JTextField" Watch "Enter key functionality on JTextField" New topic
Author

Enter key functionality on JTextField

Rajesh k Jha
Ranch Hand

Joined: May 10, 2009
Posts: 72
Hello to everyone,

I have one problem with the functionality of Enter key on JTextField.
Actually i have one "Form" where i have used JPanel which is scrollable, so to fill complete form i have to use scrollbar.
Now what i want is on press of "enter key",
i) Focus should transfer to the next textfield.
ii) And at the same time it should scroll down to show the next textfield.
I have achieved the focus functionality of JtextField to transfer the focus on the next TextField but not getting solution of scrolling down.

For review i am posting my code.

This code is to move the focus to the next JTextField



Now what to add extra code to Scroll down ?
Darryl Burke
Bartender

Joined: May 03, 2008
Posts: 4523
    
    5



edit And learn to use a layout manager so you can get rid of the setBounds(...), which is fragile and unmaintainable.


luck, db
There are no new questions, but there may be new answers.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19655
    
  18

I take it the panel is in a JScrollPane? If so, JScrollPane has a method called getViewport() which returns its JViewport. This has a method called scrollRectToVisible. This takes a Rectangle that should be shown. Now all you need to do is take the text fields bounds (getBounds()), then translate that from relative to the panel to relative to the JViewport. In short:
Because locations are always relative to the parent you simply translate it with the parent's location. For instance, if inside the viewport the panel is at location (5,13) and inside the panel the text field is at location (10, 10), then inside the viewport the location of the text field is (15,23).

Didn't know that JComponent itself has that method.

Actually, JComponent.scrollRectToVisible does something similar. It just propagates the call to the parent after this translation.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Darryl Burke
Bartender

Joined: May 03, 2008
Posts: 4523
    
    5

Um, calling panel.scrollRectToVisible(textField.getBounds()) where textField is a direct child of panel, and panel is housed in a JScrollPane, suffices. No translation of coordinates is involved.

(withdrawn)
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19655
    
  18

Darryl Burke wrote:Um, calling panel.scrollRectToVisible(textField.getBounds()) where textField is a direct child of panel, and panel is housed in a JScrollPane, suffices. No translation of coordinates is involved.

I noticed after your post
Well, there is translation involved, but it's done in the background.
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2154
    
    7
ii) And at the same time it should scroll down to show the next textfield.


Check out Scrolling a Form
 
Don't get me started about those stupid light bulbs.
 
subject: Enter key functionality on JTextField
 
Similar Threads
How to set focus on submit button on press of enter key
Enter key functionality on JTextField
find function in JTree..urgent!!
Find function in Jtree..urgent!!
JTable with CellEditor peculiar focus problem