【发布时间】:2011-08-09 19:59:49
【问题描述】:
我正在使用 Java 和 SWING,并且我有一个滚动窗格,其中添加了一个相当大的图像,现在可以正常工作,这意味着滚动功能正在按预期工作。然而,在这张图片的不同位置,我需要添加 jButtons 并能够对这些按钮进行鼠标点击操作
目前我得到以下代码:(sn-ps,如果您需要其他任何内容,请告诉我)
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调用重绘/绘制时,其次按钮用我的滚动窗格“滚动”,这意味着如果我应该将图像移到最右边,按钮仍然会显示,即使它应该只显示在 0,0。我在想我不应该将 jButton 添加到我的滚动对象,而是添加到其他东西?但我不知道是什么。
希望问题有意义,有人可以帮助我:)
【问题讨论】:
-
请附上SSCCE,以便“尽快提供更好的帮助”。 :D
标签: java swing jscrollpane jbutton