• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Implementing the Scrollable interface: viewport size

 
Henry Leung
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have written a JScrollablePanel that extends JPanel and implements the Scrollable interface. There is one method that troubles me alot: getPreferredScrollableViewportSize(). I don't want to hardcode a size to be returned. I want the viewport's size to be dynamic, that means, depends on the area the JScrollPane(the component that contains the JScrollablePanel) is allocated during runtime. i.e. If I resize the JFrame (the out-most container that holds all the swing components of my GUI program) at runtime, the viewport should resize itself too. So I tried to return the sizes below, but none of them works in the way I want:
return this.getSize();
return this.getPreferredSize();
return this.getParent().getSize();
return this.getParent().getPreferredSize();
what should I actually return in this method?
 
Fuqiang Zhao
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The problem is not in this method:
getPreferredScrollableViewportSize()

you should look the JScrollablePanel class or use the following method:
public boolean getScrollableTracksViewportWidth() {
return true;
}
public boolean getScrollableTracksViewportHeight() {
return true;
}
 
Henry Leung
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I read the JavaDoc. These 2 methods only tell whether my JScrollablePanel's size should or should not depends on the viewport's size. That means, if I return true in these 2 methods, my JScrollablePanel's size will become dynamic and resize itself whenever the viewport that display it is resized. But the viewport's size is still not dynamic.....
Am I right?
 
Fuqiang Zhao
Greenhorn
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It seems that the JScrollPane is not dynamic in your program.
What's the layout manager that your JScrollPane parent container use?
Can you post some code?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic