Ajuda com parametro pra outro metodo

bom dia galera, tô com um problema aki, com um trabalho de grafos que tenho q entregar…
vou postar o código e a duvida depois do código, quem puder ajudar…

[code]public class Grafos {

 private HashMap<Vértice, HashSet<Vértice>> dicionário = new HashMap<>();
 private HashSet<Aresta> arestas = new HashSet<>();

 public HashSet<Vértice> getVizinhos(Vértice vertice) {

         return dicionário.get(vertice);

 }

 public Grafos() {

 }

 public void adicionaVértice(Vértice v) {
         if (!dicionário.containsKey(v)) {
                 dicionário.put(v, new HashSet<Vértice>());
         }
 }

 public void removeVértice(Vértice v) {
         for (Vértice outro : dicionário.get(v)) {
                 dicionário.get(outro).remove(v);
         }
         dicionário.remove(v);
         HashSet<Aresta> buffer = new HashSet<Aresta>();
         for (Aresta a : arestas) {
                 if (a.liga(v)) {
                         buffer.add(a);
                 }
         }
         for (Aresta a : buffer) {
                 arestas.remove(a);
         }
 }

 public void conectaVértices(Vértice v1, Vértice v2) {
         dicionário.get(v1).add(v2);
         dicionário.get(v2).add(v1);
         arestas.add(new Aresta(v1, v2));
 }
 
 public void desconectaVértices(Vértice v1, Vértice v2) {
         dicionário.get(v1).remove(v2);
         dicionário.get(v2).remove(v1);
         HashSet<Aresta> buffer = new HashSet<Aresta>();
         for (Aresta a : arestas) {
                 if (a.liga(v1, v2)) {
                         buffer.add(a);
                 }
         }
         for (Aresta a : buffer) {
                 arestas.remove(a);
         }
 }

 public int ordem() {
         return dicionário.size();
 }

 public Collection<Vértice> vértices() {
         return dicionário.keySet();
 }

 public Vértice umVértice() {
         return (Vértice) vértices().toArray()[0];
 }

 @SuppressWarnings("unchecked")
 public Collection<Vértice> adjacentes(Vértice v) {
         return (Collection<Vértice>) dicionário.get(v).clone();
 }

 public int grau(Vértice v) {
	 return dicionário.get(v).size();
	}

 public String éCompleto() {
         Integer nArestas = ordem() - 1;
         for (Collection<Vértice> c : dicionário.values()) {
                 if (c.size() != nArestas) {
                	 
                         return ("Esse grafo não é completo");
                         
                 }
         }
         return ("Esse grafo é completo");
 }

 public Collection<Vértice> fechoTransitivo(Vértice v) {
         return procuraFechoTransitivo(v, new HashSet<Vértice>());
 }

 private Collection<Vértice> procuraFechoTransitivo(Vértice v,
                 Collection<Vértice> encontrados) {
         encontrados.add(v);
         for (Vértice outro : dicionário.get(v)) {
                 if (!encontrados.contains(outro)) {
                         procuraFechoTransitivo(outro, encontrados);
                 }
         }
         return encontrados;
 }

 public boolean éConexo() {
         return vértices().equals(fechoTransitivo(umVértice()));
 }

 public String éÁrvore() {
         if( éConexo() && (arestas.size() == ordem() - 1)){
        	 return ("Esse grafo é árvore");
         }
         else{
		 return ("Esse grafo não é arvore");
         }
 }

 @SuppressWarnings("unchecked")
 public Collection<Aresta> arestas() {
         return (Collection<Aresta>) arestas.clone();
 }

 public Vértice getVertice(String nomeDoVertice) {
         for (Vértice v : dicionário.keySet()) {
                 if (v.getNome().equalsIgnoreCase(nomeDoVertice)) {
                         return v;
                 }
         }
         return null;
 }

 protected Aresta getArestaEntre(Vértice v1, Vértice v2) {
         for (Aresta a : arestas) {
                 if (a.liga(v1, v2))
                         return a;
         }
         return null;
 }

}
[/code]

public class JanelaTela extends JFrame implements ActionListener{

	private static final long serialVersionUID = 1L;
	private JButton btConectar, btDesconectar, btAdicionar, btRemover, btCancelar;
	private JButton btCompletarGrafo, btGrafoÉCompleto, btGrafoÉArvore, btBuscaLargura, btVerticesPendentes;
	private JLabel lbNomeVertice, lbLinhaCima, lbLinhaBaixo;
	private JTextField txNomeVertice;
	private JPanel pnSul, pnNorte, pnCentro;
	private Grafos grafo;
    private PainelDoGrafo painelDoGrafo;
    private String situacao1 = "";
    private String situacao2 = "";
	private String situacao3 = "";
	
	public JanelaTela(Grafos grafo){
		this.grafo = grafo;
		
		setTitle("Teoria dos Grafos");
		setSize(800, 700);
		// PAINEL NORTE DA TELA
		pnNorte = new JPanel();
		pnNorte.setLayout(null);
		pnNorte.setBounds(0,0, 820, 70);
		pnNorte.setBackground(Color.LIGHT_GRAY);
		// PAINEL SUL DA TELA
		pnSul = new JPanel();
		pnSul.setLayout(null);
		pnSul.setBounds(0, 600, 820, 100);
		pnSul.setBackground(Color.lightGray);
		// PAINEL CENTRAL DA TELA
		pnCentro = new JPanel();
		pnCentro.setLayout(new BorderLayout());
		//CONSTROI AS JLABEL DOS PAINEIS
		lbNomeVertice = new JLabel("Nome do vértice:");
		lbNomeVertice.setBounds(310, 10, 150, 20);
		lbLinhaCima= new JLabel("=================================================================================================================");
		lbLinhaCima.setBounds(0, 60, 800, 10);
		lbLinhaBaixo= new JLabel("=================================================================================================================");
		lbLinhaBaixo.setBounds(0, 5, 800, 10);
		// ADICIONA AS JLABEL NOS PAINEIS
		pnSul.add(lbLinhaBaixo);
		pnNorte.add(lbLinhaCima);
		pnNorte.add(lbNomeVertice);
		//CONTROI OS JTEXTFIELD
		txNomeVertice= new JTextField();
		txNomeVertice.setBounds(410, 10, 50, 20);
		//ADICIONA O JTEXTFIELD NO PAINEL
		pnNorte.add(txNomeVertice);
		//CONTROI OS BOTÕES
		btAdicionar = new JButton(" Adicionar ");
		btAdicionar.setBounds(5, 35, 150, 20);
		btRemover = new JButton(" Remover ");
		btRemover.setBounds(160, 35, 150, 20);
		btConectar = new JButton(" Conectar ");
		btConectar.setBounds(315, 35, 150, 20);
		btDesconectar = new JButton(" Desconectar ");
		btDesconectar.setBounds(470, 35, 150, 20);
		btCancelar = new JButton(" Sair ");
		btCancelar.setBounds(625, 35, 150, 20);
		//ADICIONA OS BOTÕES NOS PAINEIS
		pnNorte.add(btCancelar);
		pnNorte.add(btAdicionar);
		pnNorte.add(btRemover);
		pnNorte.add(btConectar);
		pnNorte.add(btDesconectar);
		// CONSTROI MAIS BOTÕES
		btGrafoÉCompleto = new JButton(" Grafo Completo ");
		btGrafoÉCompleto.setBounds(5, 20, 150, 20);
		btGrafoÉArvore = new JButton(" Grafo árvore ");
		btGrafoÉArvore.setBounds(160, 20, 150, 20);
		btVerticesPendentes = new JButton(" Vértices pendentes ");
		btVerticesPendentes.setBounds(315, 20, 151, 20);
		btBuscaLargura = new JButton(" Busca em largura ");
		btBuscaLargura.setBounds(470, 20, 150, 20);
		btCompletarGrafo = new JButton(" Completar grafo ");
		btCompletarGrafo.setBounds(625, 20, 150, 20);
		//ADICIONA OS BOTÕES NOVAMENTE
		pnSul.add(btGrafoÉCompleto);
		pnSul.add(btGrafoÉArvore);
		pnSul.add(btVerticesPendentes);
		pnSul.add(btBuscaLargura);
		pnSul.add(btCompletarGrafo);
				
		// ADICIONA OS PAINEIS NA FRAME
		getContentPane().add(pnNorte);
		getContentPane().add(pnSul);
		getContentPane().add(pnCentro);
		//CONSTROI O PAINEL PARA INSERIR O GRAFOS
		painelDoGrafo = new PainelDoGrafo(grafo);
		//ADICIONA O GRAFO NO PAINEL
		pnCentro.add(painelDoGrafo);
		//TRATA OS EVENTOS DOS BOTÕES
		btAdicionar.addMouseListener(new TratadorDoBotãoAdicionar(this));
		btRemover.addMouseListener(new TratadorDoBotãoRemover(this));
		btConectar.addMouseListener(new TratadorDoBotãoConectar(this));
		btDesconectar.addMouseListener(new TratadorDoBotãoDesconectar(this));
		btCompletarGrafo.addMouseListener(new TratadorDoBotãoCompletarOGrafo(this));
		btGrafoÉCompleto.addActionListener(this);
		btGrafoÉArvore.addActionListener(this);
		btBuscaLargura.addActionListener(this);
		btVerticesPendentes.addActionListener(this);
		btCancelar.addActionListener(this);
		
		
	}
	
	public void actionPerformed(ActionEvent acao) {
		if (acao.getSource()== btGrafoÉCompleto){
			grafoCompleto();
			
		}
		else if (acao.getSource()== btGrafoÉArvore){
			grafoArvore();
		}
		else if(acao.getSource()== btBuscaLargura){
			buscaLargura();
		}
		else if (acao.getSource()==btVerticesPendentes){
			verticesPendentes();
			
		}
		else if (acao.getSource()== btCancelar){
			System.exit(0);
		}
		
	}
	public void verticesPendentes(){
		   
			situacao3   = "grafo.grau()";
			JOptionPane.showMessageDialog( null , " "+ situacao3 , " Situação do grafo",
					JOptionPane.INFORMATION_MESSAGE );
		atualizar();
		
	}
	public void buscaLargura(){
		atualizar();

	}
	public void grafoArvore(){
		situacao1 = grafo.éÁrvore();
		JOptionPane.showMessageDialog( null , " "+ situacao1, " Situação do grafo",
				JOptionPane.INFORMATION_MESSAGE ); 
		atualizar();		
	}
	
	public void grafoCompleto(){
		
		situacao2 = grafo.éCompleto();
		JOptionPane.showMessageDialog( null , " "+ situacao2, " Situação do grafo",
				JOptionPane.INFORMATION_MESSAGE ); 
		atualizar();
		
		}
	
	 public void adicionaVértice() {
         painelDoGrafo.adicionaVértice(new Vértice(txNomeVertice.getText()));
         atualizar();
         txNomeVertice.setText("");
         }

     public void removeVértices() {
         painelDoGrafo.removerVértices();
         atualizar();
         }

     public void conectaVértices() {
         painelDoGrafo.conectaVértices();
         atualizar();
         }

     public void desconectaVértices() {
         painelDoGrafo.desconectaVértices();
         atualizar();
         }

     private void atualizar() {
         paint(getGraphics());
         }
 	
	public static void main(String[] args) {
		Metro metro = new Metro();
		JanelaTela tl = new JanelaTela(metro);
		tl.setVisible(true);
		tl.setLocationRelativeTo(null);
		tl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

se precisar coloco o resto das classes…

o problema ocorre no metodo grau que preciso passar um objeto pra ele, não sei como fazer isso…
desde jah agradeço