gpt4 book ai didi

java - 向 JScrollpane 添加按钮

转载 作者:行者123 更新时间:2023-11-30 05:00:16 25 4
gpt4 key购买 nike

我正在使用 Java 和 SWING,并且我有一个滚动 Pane ,其中添加了一个相当大的图像,现在工作得很好,这意味着滚动功能正在按预期工作。然而,在该图像的不同位置,我需要添加 jButtons 并能够对这些按钮上的鼠标单击进行操作

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

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

之后,我添加了 Action 监听器,效果很好,然后我使用 img 创建滚动 Pane :

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);

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

scrollerContainer.add(scroller);

所发生的情况是该按钮在非常意想不到的时间和地点出现。首先,它并不总是显示,似乎是在 java 调用重绘/绘制时发生的,其次按钮会随着我的滚动 Pane “滚动”,这意味着如果我将图像移到最右边,按钮仍然会显示,即使它只应显示在 0,0 处。我想我不应该将 jButton 添加到我的滚动条对象中,而是添加到其他对象中?但我不知道是什么。

希望这个问题有意义并且有人可以帮助我:)

最佳答案

永远不要将组件直接添加到滚动 Pane 。

该按钮需要添加到滚动 Pane 视口(viewport)中显示的标签中。

将来将您的 SSCCE 与问题一起发布,这样我们就不需要猜测。

关于java - 向 JScrollpane 添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com