Linhas em Java com WindowBuilder

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?

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.

Hmm… como faço isso com java2D?

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();  
    }  

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).

O principal são as linhas e os valores.


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.

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

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.

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?

Obrigado amigo, já entendi. Vlw mesmo.