2016-08-21 4 views
0

Ich habe einen Rahmen mit fast 20 Panels erstellt (alle mit verschiedenen Arten und Eigenschaften), die einfach erstellt und zum Inhalt Panel hinzugefügt wurden, und ich erinnere mich an seine Bestellnummer für den Zugriff darauf.Sollten die Felder Felder im Rahmen sein?

Aber jetzt versuche ich ein UML-Diagramm aus dem Quellcode zu generieren, und ich habe festgestellt, dass ich keinen Bezug zu diesen Panels innerhalb des Rahmens habe. Soll ich 20 Feldpanels erstellen und sie einzeln referenzieren? Oder ist es gut? Ich kenne den richtigen Weg nicht, danke!

P. S: Ich weiß nicht, ob diese Dinge, aber meine Sprache Java ist

Antwort

0

Die Art und Weisen Sie Ihre Platten schreiben (alle mit verschiedener Art und Eigenschaften) Ich vermute, dass diese Platten auch verschiedene Klassen haben.

So eine bestimmte Platte zuzugreifen Code wahrscheinlich wie für jedes Panel

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

während mit Feldern sieht

private MyPanelType1 firstPanel; 

würde der Code wie

aussehen
firstPanel.someMethod(); 

Jetzt entscheiden, welche Code ist einfacher zu lesen und entsprechend zu entscheiden.

+0

Ja, und verschiedene Attribute auch, also ist es vielleicht keine gute Wahl, Felder für sie zu erstellen. Ich wollte nur wissen, ob es am schlimmsten ist, aber ich sehe es nicht. Vielen Dank! – paxinco

0

Sie die Paneele in JPanel [] Array speichern kann, so dass Sie sie jederzeit anrufen können.

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()); 
    } 
} 
+0

Danke! Aber ich wusste, dass ich das kann, meine Frage, ob das den Feldern richtig zugewiesen ist, oder ob das bei der Erstellung von UML-Diagrammen und der Definition des Themas nicht der Fall ist. – paxinco

+0

Es ist einfacher, sie nicht zuzuweisen. Es wird in jeder Hinsicht funktionieren. Sie können es tun, wie Sie wollen. – user6740407

Verwandte Themen