Gui

1 resposta
edymrex

Estou estou fazendo um programa de grafos que recebe na tela os vértices, ele é criando nesta parte do código:

public GrafoGUI(String titulo)
	{
		
		super(titulo); // define o título da janela
		chama.criaGrafo(20);
		JPanel p = new JPanel() {
			public void paint(Graphics g)
			{
				int i, tam;
				Vertice v;
				Aresta a;
				
				super.paint(g);

				for(i = 0; i < arestas.size(); i++)
				{
					a = arestas.get(i);
					g.setColor(a.getCor());
					g.drawLine(a.getVo().getX() + 5, a.getVo().getY() + 5, a.getVd().getX() + 5, a.getVd().getY() + 5);
					g.setColor(Color.WHITE);
					tam = g.getFontMetrics().stringWidth(a.getPeso()+""); 
					g.fillRect((a.getVo().getX() + a.getVd().getX() + tam + 4) / 2, (a.getVo().getY() + a.getVd().getY()) / 2, tam + 4, 15);
					g.setColor(a.getCor());
					g.drawString(a.getPeso()+"", (a.getVo().getX() + a.getVd().getX() + tam + 7) / 2, (a.getVo().getY() + a.getVd().getY() + 23) / 2);
				}

				for(i = 0; i < vertices.size(); i++)
				{
					v = vertices.get(i);

					if(v.getMarcado())
						g.setColor(v.getCorMarcado());
					else
						g.setColor(v.getCor());
						
					g.fillOval(v.getX(), v.getY(), 10, 10);
					 
					g.setColor(Color.WHITE);
					tam = g.getFontMetrics().stringWidth(v.getRotulo()); 
					g.fillRect(v.getX(), v.getY() + 10, tam, 10);
					g.setColor(v.getCor());
					g.drawString(v.getRotulo(), v.getX(), v.getY() + 20);
					
				}				
			}
		};

atráves do g.fillRect(v.getX(), v.getY() + 10, tam, 10); bem meu prog tem um opção de remover as arestas mas também presciso remover as arestas na tela alguém sabe qual método que posso fazer isso…??

1 Resposta

davidbuzatto

Cria um if no método de desenho verificando se os vértices devem ser desenhados. Seta ela na GUI e chama um repaint para o componente ser repintado.

Falow!

Criado 22 de abril de 2007
Ultima resposta 24 de abr. de 2007
Respostas 1
Participantes 2