olá
gostaria de saber como posso fazer para ligar por uma linha dois objetos como dois JList, tipo colocar uma linha de um jlist a outro
e quando eu mover o jlist de lugar a linha acompalhar o movimento, como na imagem abaixo
alguém poderia me ajudar por favor?
obrigado
Não sei te ajudar mas um conselho que de dou, era melhor você ter postado em interface gráfica. Ouço falar de Java2D, to chutando o balde, não faço a minima ideia se é isso. Veja o exemplo do java: C:\Arquivos de programas\Java\jdk1.6.0_14\demo\jfc\Java2D. Se o seu caminho para encontrar a pasta do java for esse, veja o demo de java2d.
Como assim uma linha? Voce quer que sua interface seja arrastavel ou voce diz em algum editor visual de telas?
eu tenho dois objetos que podem ser movidos para qualquer lugar, mas eu preciso fazer uma “linha”, uma ligação entre eles.
é um projeto de modelagem de dados, eu tenho as entidades, e preciso fazer a ligação entre elas
Voce pdoe criar um MouseMotionListener que ao arrastar para algum lugar mova os dois componentes independente do emissor do evento. Depois adiciona esse Listener aos dois componentes que devem ser ligados.
Posso estar falando asneira, mas declare um atributo list dentro do objeto que você está querendo ligar, vou dar um exemplo.
public class Produto{
private Integer idProduto;
private String nomeProduto;
private double valorProduto;
public Produto(){
}
//get's e set's
}
public class Venda{
private Integer idVenda;
private Date dataVenda;
private List<Produto> listaProdutos;//Aqui você liga as linhas da tabela produto na tabela venda
public Venda (){
}
//get's e set's aqui
}
Se você mover a lista de vendas para outra parte do programa a lista de produtos irá junto com a sua respectiva venda.
Sei lá pode estar muito longe do que você procura, mas é um chute pelo menos.
Espero ter ajudado 
Basicamente é isso que eu quis dizer.
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JanelaArrastavel extends JFrame {
private JLabel label1, label2;
public JanelaArrastavel(){
super("Click&Arraste");
label1 = new JLabel("Label 1");
label2 = new JLabel("Label 2");
LinkListener listener =new LinkListener(label1,label2);
label1.addMouseMotionListener(listener);
label2.addMouseMotionListener(listener);
JPanel content = new JPanel();
content.setPreferredSize(new Dimension(400,300));
content.add(label1);
content.add(label2);
setContentPane(content);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private class LinkListener extends MouseAdapter {
private JComponent comp1, comp2;
public LinkListener(JComponent comp1, JComponent comp2){
this.comp1 = comp1;
this.comp2 = comp2;
}
@Override
public void mouseDragged(MouseEvent arg0) {
int x = arg0.getPoint().x;
int y = arg0.getPoint().y;
int x1 = comp1.getLocation().x;
int y1 = comp1.getLocation().y;
comp1.setLocation(x1+x,y1+y);
int x2 = comp2.getLocation().x;
int y2 = comp2.getLocation().y;
comp2.setLocation(x2+x, y2+y);
repaint();
}
}
public static void main(String[] args) {
new JanelaArrastavel();
}
}
Cara valew pelo código, mas a parte de movimentação das entidades eu ja tenho o que eu preciso muito, é de uma ligação uma linha gráfica visivel ao usuario, como nesse demo em anexo
Para desenhar uma linha voce tem que sobreescrever o método paintComponent(Graphics g) se disponivel ou entao o método paint(Graphics g) para desenhar com o método da classe Graphics2D, drawLine.