根据用户输入在 for 循环中创建带有标题边框的 JPanel

Creating JPanels with a titled border in a for loop from user input

我想创建一个 for 循环来创建 JPanel 个标题为 headers 的容器。迭代次数取决于之前界面的用户输入。

int noofpara=Integer.parseInt(data[6]);

for(int i=1;i<=noofpara;i++){
    jPanel1.add(new JPanel().setBorder(new TitledBorder("Perimeter"+i)));       
}

noofpara 是用户选择的周长数,因为 for 循环应该创建带有标题边框和周长数的面板。错误出现在 jpanel1.add... 处,它表示不允许使用 void 类型。

您必须制作新面板并添加。

for (int i = 1; i <= noofpara; i++) {
    JPanel innerPane = new JPanel();
    innerPane.setBorder(new TitledBorder("Perimeter" + i));
    jPanel1.add(innerPane);
}

JPanel#setBorder 方法具有 void return 类型,这意味着它在调用该方法时 return 没有任何值。

但是 JPanel#add 方法需要一个值才能调用,因为 setBorder 是无效的,所以会出现编译错误。

你可以通过这个简单地解决这个问题。

JPanel childPanel = new JPanel();
childPanel.setBorder(new TitledBorder("Perimeter" + i));
jPanel1.add(childPanel);