0

我使用循环创建新的 jpanels。但是我如何使用不同的对象名称。这是我的代码:

for(int i=0; i<panelnumbers.length(); i++){
    MainConfig.page21.addNewPanel(MainConfig.page21.pos1, "INFORMACIÓN No. " + (i + 2));
}

public static void addNewPanel(int y, String title) {
    Add a = new Add(title);
    jLayeredPane3.add(a);
    a.setBounds(0, y, 1333, 450);
    jPanel1.setPreferredSize(new Dimension(1333, (pos + 480)));
    jLayeredPane3.setPreferredSize(new java.awt.Dimension(1333, (pos + 480)));
    jLayeredPane3.validate();
    jScrollPane1.getViewport().setViewPosition(new Point(0, (pos + 480)));
}
4

2 回答 2

1

我使用循环创建新的 jpanels。但是我如何使用不同的对象名称。

于 2013-06-14T08:27:25.493 回答
1

您正在使用绝对坐标,布局管理器可以跨平台、更高版本的 Windows 版本、可访问性等提供更好的 GUI。

MainConfig.page21.setLayout(new BoxLayout(MainConfig.page21, BoxLayout.Y_AXIS));

同样通常不需要JPanel,事件侦听器会知道如何检索面板。

不过,您可以维护一个 JPanel 数组:

List<JPanel> panels = new ArrayList<>();

在 addPanel 创建一个局部变量,然后添加

public void addNewPanel(int y, String title) { // Not static
    JPanel panel = new JPane();
    ...
    panels.add(panel);
}
于 2013-06-14T08:59:20.503 回答