001 package org.ujmp.gui.panels; 002 003 import java.awt.BorderLayout; 004 import java.awt.event.ComponentEvent; 005 import java.awt.event.ComponentListener; 006 import java.lang.reflect.Constructor; 007 008 import javax.swing.JPanel; 009 010 import org.ujmp.core.Matrix; 011 012 public class GraphPanel extends JPanel implements ComponentListener { 013 private static final long serialVersionUID = -8790011459377639922L; 014 015 private JPanel graphPanel = null; 016 017 private Matrix matrix = null; 018 019 public GraphPanel(Matrix matrix) { 020 this.matrix = matrix; 021 this.addComponentListener(this); 022 } 023 024 025 public void componentHidden(ComponentEvent e) { 026 } 027 028 029 public void componentMoved(ComponentEvent e) { 030 } 031 032 033 public void componentResized(ComponentEvent e) { 034 } 035 036 037 public void componentShown(ComponentEvent e) { 038 if (graphPanel == null) { 039 try { 040 Class<?> c = Class.forName("org.ujmp.jung.MatrixGraphPanel"); 041 Constructor<?> con = c.getConstructor(Matrix.class); 042 graphPanel = (JPanel) con.newInstance(matrix); 043 setLayout(new BorderLayout()); 044 add(graphPanel, BorderLayout.CENTER); 045 repaint(1000); 046 } catch (Exception ex) { 047 ex.printStackTrace(); 048 } 049 } 050 } 051 }