gpt4 book ai didi

java - 通过代码添加组件

转载 作者:行者123 更新时间:2023-11-30 03:06:44 25 4
gpt4 key购买 nike

我试图动态地将一堆标签和RadioButtons绘制到JPanel(位于ScrollPane内部)中。我收到一个带有“建议”对象的 ArrayList,我想迭代它们,以一种描述它们的标签的方式表示它们,然后是两个单选按钮(用于选择"is"或“否”)。

但目前,在 JFrame 构造函数中使用此代码,它无法正常工作:

// My constructor
public CoachingFrame(AdvicesManager am) {
initComponents();
this.am = am;

// I set the layout for the inner panel (since ScrollPane doesn't allow BoxLayout)
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

// Iterate over the arraylist
for(int i=0;i<am.advices.size();i++){

//Add elements to the panel
panel.add(new JLabel( am.advices.get(i).getQuestion()));
ButtonGroup group = new ButtonGroup();

// Group the RadioButtons inside another panel, so I can use FlowLayout
JPanel buttonsPanel = new JPanel();
buttonsPanel.setLayout(new FlowLayout());
JRadioButton rad1 = new JRadioButton();
JRadioButton rad2 = new JRadioButton();
group.add(rad1);
group.add(rad2);
buttonsPanel.add(rad1);
buttonsPanel.add(rad2);

// Add the radiobuttons' panel to the main one, and revalidate
panel.add(buttonsPanel);
panel.revalidate();
}
// Finally, add the panel to the ScrollPane.
questions.add(panel);
}

我正确接收了数组列表;我已经查过了。问题似乎出在绘制组件时。

由于我一直使用 NetBeans GUI 创建器,所以不太习惯通过代码添加组件。有人能帮我吗?我想我在这里遗漏了一些东西。

编辑:请注意,“问题”是 ScrollPane 对象!

编辑2:这个“问题”面板应该绘制所有这些组件:http://i.imgur.com/tXxROfn.png

最佳答案

Kiheru说,ScrollPane 不允许使用 .add() 添加 View (如我的 JPanel),相反,我必须使用 .setViewportView(Component)。现在可以完美运行了,谢谢!

关于java - 通过代码添加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34579937/

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