Bonjour,
J'ai cherché pas mal sur le forum une solution et en ai testé plusieurs, mais sans succés jusqu'à maintenant.. Je me tourne donc vers votre aide!![]()
J'ai un JPanel avec un PaintComponent, qui dessines un pianoRoll et avec le clic gauche, zoom sur le pianoRoll et le clic droit, dezoom.
Sauf que je ne sais pas comment annoncer à la JScrollPane de prendre en compte les redimensions.
Etpublic class MidiPaint {
static int hautFra = 600;
static int largFra = 800;
public static void main(String[] args){
JFrame fen = new JFrame("Piano Roll");
PianoR p = new PianoR();
JScrollPane j= new JScrollPane(p);
fen.getContentPane().add(j);
...
fen.setSize(largFra,hautFra);
fen.setVisible(true);
}
}
J'ai tenté de remettre le JScrollPane dans le constructeur de la classe PianoR pour plus de facilité à la manipuler ( JScrollPane j= new JScrollPane(this); ) mais sans succés.. elle ne s'affiche pas..class PianoR extends JPanel implements MouseListener {
PianoRoll pianoRoll = new PianoRoll();
...
int hautFen= 1800;
int largFen= 2000;
public PianoR(){
setPreferredSize(new Dimension(largFen,hautFen));
addMouseListener(this);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
tracesConstruct(g);
tracesSons(g);
}
...
public void mouseClicked(MouseEvent e) {
if ((e.getModifiers() & InputEvent.BUTTON1_MASK)== InputEvent.BUTTON1_MASK){
//zoom +
hautFen= hautFen*2;
largFen= largFen*2;
repaint();
}
if ((e.getModifiers() & InputEvent.BUTTON3_MASK)== InputEvent.BUTTON3_MASK){
//zoom -
hautFen= hautFen/2;
largFen= largFen/2;
repaint();
}
}
}
J'ai tenté divers validate(), revalidate(), updateUI(), setPreferedSize(...) à divers endroits, sans succés non plu...
Si vous pouvez m'aidez?! Je vous en serez reconnaissant! Merci!![]()
Partager