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.
[RESOLVIDO]Inserir linhas em um JPanel já existente
5 Respostas
Coloca um JPanel e muda a cor dele. kkk
Mas se quiser mesmo saber, busca Java2D, ou Graphics
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
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.
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.
Desculpa pela demora pra responder! Estágio, estudos e etc, fica difícil. Obrigado pela ajuda.