1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.JPanel;
public class GenePan extends JPanel implements KeyListener{
PositionScrollPanel _posPan;
PhaseScrollPanel _phasePan;
ArrayList _geneList;
int _period;
BAGraphPan _parent;
GenePan _me;
GenePan(PositionScrollPanel posPan, PhaseScrollPanel phasePan, ArrayList geneList, int period, BAGraphPan parent)
{
super();
this.setOpaque(false);
_parent = parent ;
_posPan = posPan;
_phasePan = phasePan;
_geneList = geneList;
_period = period;
_me = this;
this.setFocusable(true);
this.setBounds(0,0,_posPan.getWidth(), _phasePan.getHeight());
this.addMouseListener(new GeneClic());
this.addMouseMotionListener(new GeneMotion());
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
drawGene(g);
}
class GeneClic implements MouseListener
{
public void mouseClicked(MouseEvent event) { }
public void mouseEntered(MouseEvent event) { _me.requestFocus();}
public void mouseExited(MouseEvent event) { }
public void mousePressed(MouseEvent event) {
_parent.getBAArea().dispatchEvent(event);
}
public void mouseReleased(MouseEvent event) {
_parent.getBAArea().dispatchEvent(event);
}
}
class GeneMotion implements MouseMotionListener
{
public void mouseDragged(MouseEvent event) {
_parent.getBAArea().dispatchEvent(event);
}
public void mouseMoved(MouseEvent event) {
System.out.println("c moi qui entend ! GENE");
System.out.println(_me.isFocusOwner());
_parent.getBAArea().dispatchEvent(event);
}
}
private void drawGene(Graphics g)
{
this.setBounds(0,0,_posPan.getWidth(), _phasePan.getHeight());
int pixPhase = (int)((this.getHeight()-10)* _phasePan.getPhase())+5;
for (int i=0; i< _geneList.size(); i++)
{
GenePoint gp = (GenePoint)_geneList.get(i);
int x, y;
x = _posPan.getXPosition(gp.getPosition());
y = _phasePan.getYPhase(gp.getPhase(_period));
gp.setLocation(x, y);
this.add(gp);
}
}
public void keyPressed(KeyEvent event) {
// TODO Auto-generated method stub
System.out.println("préssé !");
}
public void keyReleased(KeyEvent event) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent event) {
// TODO Auto-generated method stub
}
} |
Partager