File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Usability features

 
Eric Larsen
Ranch Hand
Posts: 35
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey everybody, I've been writing a simple chat program, and I was wondering about a few features that I haven't been able to figure out just yet.

1. How do I set the scroll bar's position manually, via code.
2. How do I call a method from a keystroke?

I plan on putting a method call to whatever method number 1 entails at the end of the while loop in IncomingReader's run() method, and I'd also like the program to be able to send the user's message when they press ENTER.

The code for the client class:

chat screenshot.JPG
Two client GUI's, two client CLI's, and the server CLI.
[Thumbnail for chat screenshot.JPG]
 
Michael Dunn
Ranch Hand
Posts: 4632
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
> 1. How do I set the scroll bar's position manually, via code.

get the scrollbar from the scrollPane and
scrollBar.setValue(someIntValue);

but this has always been a bit wonky
a lot depends on what the maximum value is (and, if I remember correctly, this 'maximum' can change)

an alternative is to get the scrollPane's viewport and
viewport.scrollRectToVisible(someRectangle);

where someRectangle could be (e.g.) textfield.getBounds()


> 2. How do I call a method from a keystroke?

keyBindings

http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html
 
Eric Larsen
Ranch Hand
Posts: 35
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks, Michael.

I'm still having problems, though. When I try to compile my code now, it give's me an error:



My revised code to bind the Enter key to my JTextField outgoing:

 
pete stein
Bartender
Posts: 1561
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rather than implement Action, I'd try having having your class extend AbstractAction. This way while it has to implement the actionPerformed method it only overrides the other Action methods that you think are necessary (or none at all).
 
Rob Spoor
Sheriff
Pie
Posts: 20396
47
Chrome Eclipse IDE Java Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You also might want to combine the SendButtonListener and SendAction classes, removing the first. Action extends ActionListener, so you can use Action where you can use ActionListener.
 
Eric Larsen
Ranch Hand
Posts: 35
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Awesome, thanks guys!!!

It works very well now! I took Rob and Pete's advice and it helped quite a bit. Thanks!
I also put in some other code to check for the presence of text in JTextField outgoing before sending.

Here's the final code:

 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic