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