[RESOLVIDO]Inserir linhas em um JPanel já existente

5 respostas
programaçãoswingjava
V

Olá! Eu estou desenvolvendo uma aplicação em Swing, onde em certo momento eu insiro duas Imagens que na verdade são JLabels e preciso traçar uma linha entre elas simulando uma conexão. Porém, eu já procurei em vários fóruns, várias soluções diferentes e não consegui resolver meu problema.

5 Respostas

C

Coloca um JPanel e muda a cor dele. kkk

Mas se quiser mesmo saber, busca Java2D, ou Graphics

V

Obrigado pela resposta! Eu procurei por ambos (Java2D e Graphics), porém, eles instanciam os objetos na Main, e eu já tenho um JPanel criado.

Eu fiz todo o processo, criei uma classe chamada DrawLine herdando JPanel etc, tudo certinho, mas não consigo fazer esse processo na minha JPanel.

Essa é a minha classe pra desenhar:

package lines;

import java.awt.Graphics;
import javax.swing.JPanel;

/**
 *
 * @author Vitor Hugo
 */
public class DrawLine extends JPanel{
    public void paintComponent (Graphics g){
        super.paintComponent(g);
        
        g.drawLine(0, 0, 250, 175);
    }
}

E eu quero desenhar uma linha entre uma imagem(que é um JLabel) e outra no meu JPanel, que eu chamo de pnlDiagrama.
Não sei se estou sendo claro :s

D

A classe DrawLine é só a linha? Pois se for, então é necessário adicionar no construtor: setOpacity(false) e setPreferredSize(250, 175) ou setBounds(0, 0, 250, 175).

Recomendo que refaça usando JavaFX, pois seria muito mais fácil de fazer, ou então usar somente um JPanel usando o Graphics, tanto paras as imagens quanto para os elementos desenhados. Usando o JLabel, teria a vantagem de controle de eventos do mouse, mas teria dificuldades de posicionamento dos elementos e talvez problemas de qualidade da imagem.

C

Cara, eu acho que entendi
Mas é que realmente vai ser complicado
Vi algo relacionado a incluir uma linha com Graphics2D em um JPanel, aqui
http://javafree.uol.com.br/topic-875285-Desenhar-Dentro-de-um-Jpanel.html

E aqui
http://respostas.guj.com.br/30311-problema-com-desenhar-linha-no-jpanel

Mas concordo plenamente com o @diego12
Use JavaFX, que é bem mais fácil e rápido. E dá mais futuro.

V

Desculpa pela demora pra responder! Estágio, estudos e etc, fica difícil. Obrigado pela ajuda.

Criado 12 de setembro de 2017
Ultima resposta 19 de out. de 2017
Respostas 5
Participantes 3