Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ruben_Barbosa

Grafo

Mensagens Recomendadas

Ruben_Barbosa

Boas pessoal eu Criei um JPanel.

Onde ai Dentro Quero criar Grafos Aleatoriamente.

Actualmente ja crios os grafos aleatoriamente mas e na Frame toda :| e eu quero somente dentro do painel pois se o utilizador clickar fora do panel nao pode gerar grafo.

Aqui deixo o meu Codigo

Graphics g= getGraphics();
       Random random =new Random();
       int x= random.nextInt(400);
       int y= random.nextInt(400);


       grafo1.newNodo();
       //desenha um circulo preto
       g.drawOval(x , y, 30, 30);
       //preenche a Azul
       g.setColor(Color.BLUE);
       g.fillOval(x, y, 30, 30);
        System.out.println("x "+x+" y "+y);
       //string
       String str="V";
       //concatena a string o numero do Vertice em que esta
       str=str.concat(String.valueOf(grafo1.Vertices()));
       g.setColor(Color.black);
       //cria a String com o nome do Vertice
       g.drawString(str, x, y);

       if(grafo1.Vertices()>1){
       g.drawLine(x+10, y, ValX+10, ValY);
       grafo1.Addarc(grafo1.Vertices()-1, grafo1.Vertices());
//       System.out.println("Ligaçao do V"+(grafo1.Vertices()-1)+" para o V"+(grafo1.Vertices()));
       }
       ValX=x;
       ValY=y;
       JOptionPane.showMessageDialog(this,"Grafo nº: "+grafo1.Vertices()+"\nLigação do V"+(grafo1.Vertices()-1)+" para o V"+(grafo1.Vertices()),"Informação",JOptionPane.INFORMATION_MESSAGE);
//       jLabel2.setText(String.valueOf(grafo1.Vertices()));//mostra o total de Vertices
       g.dispose();

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
DVD

Isso é so restringir os clicks do rato ao painel que queres da seguinte maneira:

JPanel jp = new JPanel();
        j.addMouseListener(new MouseListener() {
            
            @Override
            public void mouseReleased(MouseEvent arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void mousePressed(MouseEvent arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void mouseExited(MouseEvent arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void mouseEntered(MouseEvent arg0) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
                
            }
        });

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
DVD

Chamas o codigo onde crias os grafos dentro do método

 public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
               
            }

Tens é de retirar o callback que tinhas anteriormente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ruben_Barbosa

Epah LOL DVD

Esquece meu eu estava  aescrever uma coisa e a pensar noutra LOOL omfg.

O que eu queria era criar Grafos dentro do meu Painel quando faço random e nao sair do Painel LOL.

Isso do Evento já tenho mouseClicked.

Epah isto ja estã tao carburado que até nem sai coisa com coisa :|.

Por isso pus o Codigo

Graphics g= getGraphics();
       Random random =new Random();
       int x= random.nextInt(400);
       int y= random.nextInt(400);


       grafo1.newNodo();
       //desenha um circulo preto
       g.drawOval(x , y, 30, 30);
       //preenche a Azul
       g.setColor(Color.BLUE);
       g.fillOval(x, y, 30, 30);
        System.out.println("x "+x+" y "+y);
       //string
       String str="V";
       //concatena a string o numero do Vertice em que esta
       str=str.concat(String.valueOf(grafo1.Vertices()));
       g.setColor(Color.black);
       //cria a String com o nome do Vertice
       g.drawString(str, x, y);

       if(grafo1.Vertices()>1){
       g.drawLine(x+10, y, ValX+10, ValY);
       grafo1.Addarc(grafo1.Vertices()-1, grafo1.Vertices());
//       System.out.println("Ligaçao do V"+(grafo1.Vertices()-1)+" para o V"+(grafo1.Vertices()));
       }
       ValX=x;
       ValY=y;
       JOptionPane.showMessageDialog(this,"Grafo nº: "+grafo1.Vertices()+"\nLigação do V"+(grafo1.Vertices()-1)+" para o V"+(grafo1.Vertices()),"Informação",JOptionPane.INFORMATION_MESSAGE);
//       jLabel2.setText(String.valueOf(grafo1.Vertices()));//mostra o total de Vertices
       g.dispose();

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.