【发布时间】:2026-02-03 08:15:01
【问题描述】:
我正在尝试使用 this API 为我的 JMeter 插件制作一个 GUI
当创建太多JComponent 对象时,我希望我的AbstractSamplerGui 滚动。如果我创建一个包含简单对象的面板,我没有问题.. 面板将滚动正常:
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
...
public final class MyGui extends AbstractSamplerGui {
public MyGui() {
final VerticalPanel panel = new VerticalPanel();
for (int i = 0; i < 100; i++) {
panel.add(new JLabel("TEST"));
panel.add(new JTextArea());
}
add(panel);
}
...
但是,当我给 JTextArea 对象一个非默认大小 new JTextArea(30, 30)) 时,滚动条不会注意到页面更大.. 意味着一半的项目延伸到面板之外(无法到达)。
我知道您应该在添加项目后通过JFrame 致电pack,但我不知道我该怎么做。 AbstractSamplerGui 扩展 JPanel 没有 pack 方法。
我尝试使用 JMeter API 找到 JFrame,但没有运气。我也不认为我可以使用 SwingUtilities::getRoot 找到根框架,因为这项工作是在 JPanel 的构造函数中完成的。
任何帮助将不胜感激!
【问题讨论】:
-
Why does anyone use swing?- 因为它易于使用和定制。缺乏关于 Swing 的知识并不是抱怨它的理由。问题在于您的自定义代码,而不是 Swing。谁知道为什么你的代码不起作用。 “VerticalPanel”是一个非标准类,我不知道它的作用。布局问题可能就在那里。 -
@camickr 它更像是一个滑稽的评论:p VerticalPanel 也是 JMeter API 的一部分。我将添加导入
-
@camickr 我刚刚用
JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));替换了panel,我看到了同样的问题。
标签: java swing user-interface jmeter pack