I have a mainscreen which currently scrolls (and I have the arrows on the right) but the scrolling seems to be focused on the ButtonField objects that I have on the page. Is there any way to set the scrolling to be non-focused scrolling (moving a few pixels each time). Is there a way to set this?
Other ideas I have had (which sound hacky so I want to avoid):
- Placing NullFields around to scroll
- Manually listening to the trackwheelRoll event and moving appropriately
That's not really how scrolling works on trackball BlackBerry devices. It's always based on the change of focus from one field to another. The only time the whole screen may scroll "smoothly" is when there are no fields that accept focus (or on touchscreen devices such as the Storm).
To use an analogy: just think of each focusable field on the screen as being like a line of text in a text editor. Just by moving the cursor with the arrow keys, you can get the screen to scroll but only when the cursor hits the edge of the current visible screen, and then only to the next line in a one-line increment. On trackball BlackBerrys, the trackball is the equivalent of the arrow keys -- and unfortunately there isn't an analog to "smoothly dragging the scrollbar with a mouse" in the text editor. Hope this makes sense!
Related
scrollbar moves roughly while scrolling. how to make scrollbar move smoothly when enable fastcrollenable="true"?
I've been looking for it for a month. both in android documentation, stackoverflow, and other web ,but i can't find it.
in my listview , im just add....
android:fastScrollEnabled="true"
setSmoothScrollbarEnabled(boolean enabled)
When smooth scrollbar is enabled, the position and size of the scrollbar thumb is
computed based on the number of visible pixels in the visible items.
note that sometimes your answer would be easily found in java
Before Scroll
After Scroll
I am working on creating an Eclipse plugin for tracking of collections (Arrays, Array List, etc.). And I was in need of an SWT Table with expandable columns. In order to implement this, I created several SWT buttons, and generated them before I created the table, and I linked them to the columns that need to be expanded. What I'm having a problem with now is that I need a way to determine how much a user scrolled the scroll bar in order to determine what the new location of the buttons should be. For instance, if the user scrolls 10 pixels to the left, I need to move the buttons 10 pixels to the left, etc.
Is there an easy way to accomplish this within the SWT ScrollBar framework?
Actually, I was able to solve the problem by using Scrollbars "getSelection" method. Turns out, the value that this method represents is the offset from 0 of the scrollbar. In order to solve the problem, I just subtracted the getSelection value from the X position of the buttons
I am trying to develop an application in Java (Swing) that lets me overlay a grid on the screen, and be able to click things behind the grid -- say, an icon the desktop for example.
Would I approach this problem with a Transparent JFrame or a Transparent JWindow?
Whatever I use, the transparent window/frame needs to
always be on top.
occupy the entire screen.
register every click with a mouse listener.
record the coordinates of the clicks on the screen.
allow me to use the Graphics class to draw a grid on the screen, and other elements, like numbers or images, that should also be click through.
Any direction would be appreciated.
Apologize if I haven't been specific enough, but I haven't found a demo window or frame that can do all these things. There's an example here and another here -- but I don't know how to use WindowUtils in Eclipse. This is my first time in GUI development and I've never used external libraries aside from the base Java classes.
on top: Frame.setAlwaysOnTop() should work for you
full screen: Setting the window size to the display size will make it occupy the entire screen
events and overlay painting: The actual behavior may vary by platform, but typically if you're using an alpha component to draw into your window, and your window is nominally transparent, those areas not painted (or sometimes those painted below a certain alpha threshold) will pass events through to whatever applications, windows, or components are underneath.
If you capture events, you then have to re-introduce them to whatever window is below yours, which is non-trivial. If you don't capture events, you need to install an OS-specific event handler to capture events of interest.
JNA's WindowUtils.setWindowTransparent() should provide the paint/event behavior required, or you can use the AWTUtils equivalent provided in more recent JVM releases.
I can use mouseWheel() from java.awt.Robot to simulate a vertical mouse wheel scroll. On OS X I have a Mighty Mouse that will scroll horizontally too. Is there any way I can simulate this with java.awt.Robot? The documentation only shows vertical scrolling.
Not according to that framework.
But an alternative to this, and keep in mine I haven't done this in your environment, is if you are able to generalize the keystroke of the left and right scroll. You can essentially issue you application to move right and left. You can implement a keylistener that does that tick. This is how I have done a few of these for web application using JS.
How would I go about writing my own scrollbar using standard Java 2D.
I really don't want to use swing, and I've already made up my own component parts for everything else such as buttons etc.
I'm not really looking for code, rather the math involved in the event changes and the drawing.
Why on earth would you want to write your own java GUI toolkit? You already have the choice of Swing and SWT, can you really do better than these two teams?
If you've already written the rest of the toolkit, I don't understand why the scrollbar would stump you. Without knowing anything about your event system, or how your custom components are structured, it's impossible to give much advise. I don't see this being particularly maths intensive - just maintain the height of the scrollable component, and the view it's in, and the scrollbar size should match the proportion of the component that is visible. The position of the scrollbar should match which part of the component is visible (this will have to be scaled). Specifically, what do you want to know?
Java is now open. I'd go look at the source for the Swing and/or SWT as they are already implemented. The math seems fairly straight forward. You have a Bar and a Container. To simplify we will only discuss length (the dimension in which the scrollbar moves). The container is of a certain length. The bar is of a length that is equal to or less than the container. It is useful to define the center and the two endpoints of the scrollbar. You can have the scrollbar start at 0 at the top and 1 at the bottom or 0 at the top and 100 at the bottom with the important part being defining your scrollbar in the same manner. Then you can check the endpoints for collision with the edge to stop the bar from moving. If the mouse is held down with the cursor over the coordinates inside the bar, the bar starts caring about where the cursor is and will paint the scrollbar and whatever the scrollbar is ultimately supposed to be affecting. So, you would take the page to be affected and map it to 0 and 1 * the scale in pixels of the scrollbar. Then you get to worry about the arrows at either end and how big of a jump each click is and dealing with mousedown events etc.etc. Use what is given don't reinvent the wheel.
While not Java2D, this straightforward code snippet might help:
http://processing.org/learning/topics/scrollbar.html