2013-12-13 47 views
2

我是UML类图的新手。有人能向我解释我如何从这个Java代码中解脱出来?我一直在阅读关于UML类图的内容,但由于使用了这些示例,我无法理解它。所以我想知道任何人都可以告诉我如何使用我自己的代码制作UML类图。创建UML类图?

package UserName; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Calendar; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 


public class UserName extends JFrame implements ActionListener { 

    JTextField fname = new JTextField(); 
    JTextField lname = new JTextField(); 
    JTextField uname = new JTextField(); 
    JTextField email = new JTextField(); 
    JTextArea dataArea = new JTextArea(20, 50); 
    JButton save = new JButton("Save"); 


    Student student[] = new Student[20]; 
    int count = 0; 


    public UserName() { 
     this.setLayout(new BorderLayout()); 
     JPanel fieldPanel = new JPanel(); 
     fieldPanel.setLayout(new GridLayout(2, 4)); 
     fieldPanel.add(new JLabel("Firstname")); 
     fieldPanel.add(fname); 
     fieldPanel.add(new JLabel("Username")); 
     fieldPanel.add(uname); 
     fieldPanel.add(new JLabel("Lastname")); 
     fieldPanel.add(lname); 
     fieldPanel.add(new JLabel("Email")); 
     fieldPanel.add(email); 
     email.setEnabled(false); 
     uname.setEnabled(false); 
     email.setDisabledTextColor(Color.BLACK); 

     uname.setDisabledTextColor(Color.BLACK); 

     this.add(fieldPanel, BorderLayout.NORTH); 
     this.add(new JScrollPane(dataArea), BorderLayout.CENTER); 
     this.add(save, BorderLayout.SOUTH); 
     save.addActionListener(this); 
    } 

    public static void main(String[] args) { 
     UserName namn = new UserName(); 
     namn.pack(); 
     namn.setVisible(true); 
     namn.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     } 


    @Override 
    public void actionPerformed(ActionEvent ae) { 
     if (count == 20) { 
      JOptionPane.showMessageDialog(null, "There are 20 students!"); 
      return; 
     } 
     Student s = new Student(); 
     s.fName = fname.getText(); 
     s.eName = lname.getText(); 
     Calendar cal = Calendar.getInstance(); 
     int iYear = cal.get(Calendar.YEAR); 
     String year = (iYear + "").substring(2); 
     s.Uname = "a" + year + s.fName.substring(0, 3).toLowerCase() + s.eName.substring(0, 3).toLowerCase(); 
     s.eMail = s.Uname + "@ltu.com"; 
     student[count] = s; 
     count++; 
     dataArea.setText(""); 
     for (int i = 0; i < count; i++) { 
      dataArea.append(student[i].toString() + "\n"); 
     } 

     uname.setText(s.Uname); 
     email.setText(s.eMail); 
    } 
} 

class Student { 

    String fName; 
    String eName; 
    String Uname; 
    String eMail; 


    @Override 
    public String toString() { 
     return "Firstname: " + fName + " Lastname: " + eName + " Username: " + Uname + ", Email: " + eMail; 
    } 

} 

我也想知道我应该用什么软件来创建UML图。提前致谢。

+0

可能的重复[从Java代码到UML图](http://stackoverflow.com/questions/1687323/from-java-code-to-uml-diagram) – informatik01

+0

作为一个例子,请查看[ObjectAid UML Explorer for Eclipse](http://www.objectaid.com/class-diagram)。 – informatik01

回答

0

我可以使用的一大件免费软件是ArgoUML(http://argouml.tigris.org/)。这将允许您输入类的所有类,变量和方法以及类之间的关系,以生成UML类图。

您必须首先理解UML类图的工作原理以及尝试使用ArgoUML之前UML应该如何显示。但是,使用ArgoUML应该可以帮助您了解代码和图表之间发生的转换。

就你而言,它将是一个非常简单的UML类图,由两个类组成。只需在ArgoUML中创建类,开始添加变量和方法,它很快就会有意义(我希望!)。