voici la facon dont je crée ma fenetre :
MyPanel panel = new MyPanel(liste);
jsp = new JScrollPane();
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jsp.getViewport().add(panel);
getContentPane().add( BorderLayout.CENTER, jsp);
panel.setVisible(true);
et voici ma methode paint (définie dans MyPanel, qui etend JPanel) :
public void paint(Graphics g){
int largeureCumulee = space;
int hauteurCumulee = space;
int y = 0;
//dessin des codes sur le panel
g.setColor(new Color(0,0,0));
Barcode code;
setSize(WIDTH, HEIGHT);
for(int i = 0 ; i < liste.getItemCount() ; i++){
code = new Barcode(liste.getItem(i));
if(largeureCumulee + code.getStringCode().length() >= WIDTH){
hauteurCumulee += (code.getHauteur() + 2* space);
largeureCumulee = space;
}
for(int j = 0; j < code.getStringCode().length(); j++){
if((code.getStringCode().charAt(j)) == 'b'){
g.drawLine(j + largeureCumulee, hauteurCumulee,j + largeureCumulee, code.getHauteur() + hauteurCumulee);
}
}
g.drawString(code.toString(), (int)((code.getStringCode().length() - (code.toString().length()))/2) + largeureCumulee, code.getHauteur() + 12 + hauteurCumulee);
largeureCumulee += (code.getStringCode().length() + space);
}
//fin du dessin des codes
}
}
dsl d'être si long, m c pour placer le contexte