Linhas em Java com WindowBuilder

10 respostas
R

Bom, preciso ligar 2 pontos em um panel com uma linha. Porém o A e o ponto B não estão na mesma altura e só consigo fazer uma linha reta, não consigo mudar o angulo dela.

O que fazer?

10 Respostas

E

No Swing nao existe um componente pronto que tenha linhas diagonais - apenas linhas horizontais (JSeparator).
Se precisar de algo que desenhe linhas, provavelmente você terá de criar uma classe derivada de JPanel onde você desenhe as coisas usando Java2D.

R

Hmm… como faço isso com java2D?

R

bom, reescrevi o método Paint da Classe JFrame, a linha aparece mas apaga todo o conteúdo da minha página (tenho jbutton, jlabel e etc… some tudo e fica só a linha).

@Override  
    public void paint(Graphics g) {  
        Graphics2D g2d = (Graphics2D) g.create();  
        g2d.drawLine(500, 500, 510, 510);  
        g.dispose();  
    }
E

Faça um desenho do que você quer fazer, e poste aqui como um “attachment”. (Não adianta você por em algum site de compartilhamento de arquivos porque não vou conseguir enxergar, devido a problemas do proxy).

R

O principal são as linhas e os valores.


E

Dica: use um programa como o graphviz para gerar o gráfico a partir desses pontos. Ele gera a partir de um arquivo texto um arquivo de imagem que você pode mostrar no seu programa.

R

Hmm… entendi, porém não vai dar tempo. tenho que entregar esse projeto hoje. :smiley:

E

Então, é por isso que recomendo usar o GraphViz. É mais rápido aprender como é que se faz para chamar o graphviz (que tem os algoritmos adequados para poder desenhar essas linhas com essas legendas) que você tentar fazer tudo na raça.

E

Crie um arquivo-texto “teste.dot” com o seguinte conteúdo:

digraph D {
   rankdir = "LR";
   X1 -> N1 [label="0,3"];
   X1 -> N2 [label="0,4"];
   X1 -> N3 [label="0,4"];
   X1 -> N4 [label="0,4"];
   X2 -> N1 [label="0,3"];
   X2 -> N2 [label="0,3"];
   X2 -> N3 [label="0,3"];
   X2 -> N4 [label="0,3"];
}

A seguir, chame o “dot” (que faz parte desse programa Graphviz) com os seguintes parâmetros:

dot -Tpng -oteste.png teste.dot

Você vai ver que ele vai gerar exatamente o gráfico que você precisa mostrar no arquivo “teste.png”

A seguir, pegue esse teste.png e o carregue (em um JLabel, talvez) dentro de sua aplicação.

Acho que você é esperto suficiente para achar esse GraphViz na Internet e ver o que tem de ser feito, não?

R

Obrigado amigo, já entendi. Vlw mesmo.

Criado 1 de março de 2013
Ultima resposta 1 de mar. de 2013
Respostas 10
Participantes 2