面板应该是框架内的字段吗?

时间:2016-08-21 10:24:49

标签: java field panel frame concept

我创建了一个框架,里面有近20个面板(都具有不同的种类和特征),只需创建它们并将它们添加到内容面板并记住他的订单号以便访问它们。

但是现在我尝试从源代码生成UML图表,我注意到我没有在框架内对这个面板进行任何引用。我应该创建20个现场面板并逐一引用它们吗?或者它很好吗?我不知道正确的方式,谢谢!

P.S:我不知道这是否重要,但我的语言是Java

2 个答案:

答案 0 :(得分:0)

您可以将面板存储在JPanel []数组中,以便随时调用它们。

import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class TestClass {
    static JFrame frame = new JFrame();
    static JPanel[] panel_order = new JPanel[20]; // 20 the number of panels you have

//generating the panels
public static void main(String[] args){     
    frame.setBounds(0, 0, 500, 400);

    for(int i=0;i<panel_order.length;i++){
        JPanel panel = new JPanel();
        // you can set the panel's location like:
        panel.setBounds(20*i, 0, 80, 50);
        //and border if you are making diagrams
        panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        panel_order[i] = panel;
        frame.add(panel);
    }
frame.setVisible(true);
    //now you can access your panels by calling panel_order[panel_number];
        //example display the 5th panel's location
        System.out.println(panel_order[5].getLocation());
     }
}

答案 1 :(得分:0)

关于面板的写法(所有具有不同类型和特征的)我怀疑这些面板也有不同的类。

因此,要访问特定面板,您的代码可能看起来像

((MyPanelType1) getContentPane().getComponent(0)).someMethod();

而每个小组都有字段

private MyPanelType1 firstPanel;

代码看起来像

firstPanel.someMethod();

现在决定哪些代码更容易阅读,并做出相应的决定。