【问题标题】:creating new jpanels using loop使用循环创建新的 jpanels
【发布时间】:2013-06-14 08:05:22
【问题描述】:

我使用循环创建新的 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)));
}

【问题讨论】:

标签: java swing loops object jpanel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。这是个好主意。但我不知道在运行时添加了多少面板。这是无限的 jpanel。
    • 好的,我将更改代码。由于 i 和 for 循环,思想固定。
    • 请注意,addNewPanel 不再是静态的,就像使用 panels 一样。
    • 我解决了我的问题。谢谢大家。我喜欢 stackoverflow 的专家
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2018-06-17
    • 2017-03-24
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多