Evento de click em uma linha feita pela Graphics2D

0 respostas
L

Bom dia… Eu fiz um esqueminha parecido como uma ferramenta de diagrama e liguei dois panels com uma linha desenhada pelo Graphics2D.

A minha pergunta: É possível disparar o evento de clique nesta linha? Ou seja, preciso saber se o usuário clicou sobre a linha para abrir um form referente ao relacionamento.

Meu código fico assim:

public class LinkedPanel extends JPanel {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);  
        Graphics2D g2 = (Graphics2D)g;  
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        
        for(int i = 0; i < getComponentCount(); i++) {   
            Point2D.Double p1 = getCenter(getComponent(i));
            PanelDiagram pnlPai = (PanelDiagram) getComponent(i);
            List<RelacionamentoVO> lista = pnlPai.getRelacionamentos();
            
            for (RelacionamentoVO item : lista) {
                for(int j = 0; j < getComponentCount(); j++) {
                    PanelDiagram pnlFilho = (PanelDiagram) getComponent(j);
                    if (pnlFilho.getTbVO().getTabela().equals(item.getTabdestino().getTabela())) {
                        Point2D.Double p2 = getCenter(getComponent(j));
                        g2.draw(new Line2D.Double(p1, p2));
                    }
                }
            }
        }
    }    
    private Point2D.Double getCenter(Component c) {    
        Point2D.Double p = new Point2D.Double();      
        Rectangle r = c.getBounds();   
        p.x = r.getCenterX();     
        p.y = r.getCenterY();     
        return p;     
    } 
}
Criado 24 de janeiro de 2012
Respostas 0
Participantes 1