开发者

How do I add space to a JPanel, so that JScrollPane doesn't sit on top of my components?

开发者 https://www.devze.com 2023-03-06 20:39 出处:网络
I have a JScrollPane and when I load my application the bar is sitting on top of one of my buttons.What I would like to do is add some space to the side of my button so that the scroll bar draws over

I have a JScrollPane and when I load my application the bar is sitting on top of one of my buttons. What I would like to do is add some space to the side of my button so that the scroll bar draws over the space and not my button.

Example code that I tried:

JPanel eButton = new JPanel(new BorderLayou开发者_如何学Ct());
JPanel spaceFiller = new JPanel();
spaceFiller.setSize(30, 10);
eButton.add(editButton, BorderLayout.EAST);
eButton.add(spaceFiller, BorderLayout.WEST);

The problem with this code is that it still overwrites my button and no space is added. What is the best way to make sure that JScrollPane doesn't overlap the components in my JFrame?

Thanks


To ensure that the size of the JPanel is respected you should use setPreferredSize() instead of setSize().


In your sample code, didn't you reverse EAST and WEST? Shouldn't it be like:

eButton.add(editButton, BorderLayout.WEST); 
eButton.add(spaceFiller, BorderLayout.EAST); 

That would make more sense, sicne the scrollbar will appear on the right side (EAST).

Please note that the solution you suggest, even though it may work (after exchanging EAST and WEST) looks more like a hack than a real solution.

0

精彩评论

暂无评论...
验证码 换一张
取 消