【问题标题】:Adding buttons to JScrollpane向 JScrollpane 添加按钮
【发布时间】: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


【解决方案1】:

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

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

以后在您的 SSCCE 中发布问题,这样我们就不需要猜测了。

【讨论】:

  • 非常感谢您的快速回答 - 将来我会确保发布一个更短、更好的问题(感谢链接 mre!)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2021-03-23
  • 1970-01-01
相关资源
最近更新 更多