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:
Michael Dunn
Ranch Hand
Joined: Jun 09, 2003
Posts: 4632
posted
0
> 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()
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
Joined: Feb 23, 2007
Posts: 1561
posted
0
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).
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.
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://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.