向JScrollpane添加按钮

时间:2011-08-09 19:59:49

标签: java swing jscrollpane jbutton

我正在使用Java和SWING,并且我有一个带有相当大图像的滚动窗格,它现在工作得很好,这意味着滚动功能正在按预期工作。但是在这个图像的不同位置我需要添加jButton并能够对这些鼠标点击

目前我得到了以下一些代码:(片段,如果您需要其他任何内容,请告诉我)

jButton1 = new JButton("CLICK");
jButton1.setBounds(0, 0, 100, 100);

之后我添加了actionlistener,工作正常,然后用img创建我的滚动窗口:

BufferedImage wp = ImageIO.read(new File("Main_background.jpg"));

JLabel image = new JLabel(new ImageIcon(wp));

scrollerContainer.setSize(screen_width-50,screen_height-50);
scrollerContainer.setLayout(new BorderLayout());

将按钮添加到我的scrollerPane:

scroller.add(jButton1);

最后将我的滚动条添加到我的容器中:

scrollerContainer.add(scroller);

发生的事情是该按钮出现在非常意外的时间和地点。首先它不会一直显示,它似乎发生在java调用redraw / paint时,其次是按钮“滚动”我的滚动条,这意味着如果我将图像放到最右边,按钮仍然会出现,即使它应该只显示在0,0。我想我不应该将jButton添加到我的滚动对象,而是添加其他东西?但我无法弄清楚是什么。

希望问题有道理,有人可以帮助我:)

1 个答案:

答案 0 :(得分:2)

您永远不应将组件直接添加到滚动窗格。

需要将按钮添加到您在滚动窗格的视口中显示的标签。

将来在您的SSCCE上发布问题所以我们不需要猜测。