fala galera, tô com um problema serio aki e quem puder ajudar ficarei mt grato… vou postar os códigos e descrevo o erro abaixo…
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){
if ( v != null){
return dicionário.get(v).size();
}
else
return 0;
}
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;
}
}
public class VerticesPendentesTela extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private static JButton btCancelar, btOK;
private static JLabel lbNome;
private static JTextField txNome;
private static String situacao3 = "";
public VerticesPendentesTela(){
setTitle("Teoria dos Grafos");
setSize(300, 120);
setLocationRelativeTo(null);
setVisible(true);
Container tela = getContentPane();
setLayout(null);
lbNome= new JLabel("Nome do vértice");
lbNome.setBounds(10, 10, 100, 20);
txNome = new JTextField();
txNome.setBounds(110, 10, 160, 20);
btCancelar = new JButton("Cancelar");
btCancelar.setBounds(120, 45, 150, 20);
btOK = new JButton("OK");
btOK.setBounds(10, 45, 100, 20);
tela.add(lbNome);
tela.add(txNome);
tela.add(btOK);
tela.add(btCancelar);
btOK.addActionListener(this);
btCancelar.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()== btOK){
verticesPendentes();
}
else if(e.getSource()==btCancelar){
setVisible(false);
}
}
public static String verticesPendentes(){
try{
Grafos grafo = new Grafos();
grafo.grau(txNome.getText());
situacao3 = verticesPendentes();
JOptionPane.showMessageDialog( null , " "+ situacao3, " Situação do grafo",
JOptionPane.INFORMATION_MESSAGE );
}
catch(NullPointerException e){
JOptionPane.showMessageDialog( null, " Ocorreu um erro \n Forneça valores válidos \n ");
}
return situacao3;
}
}
meu problema é no metodo grau da classe Grafos, nele preciso passar por parametro um objeto vértice pelo JtextFiled. alguem pode me ajudar
posso colocar o resto das classes… abraços a todos