Comme le titre le suggère, je veux peindre sur un JPanel et l'afficher dans un JScrollpane, donc si le contenu de JPanel est grand, les barres de défilement sont affichées. J'ai essayé d'y arriver par:Peindre sur un JPanel et l'ajouter à un JScrollPane
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Main extends JFrame{
DrawPanel dp;
JScrollPane jsp;
public Main(){
setTitle("Test");
setSize(400,400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
dp = new DrawPanel();
jsp = new JScrollPane(dp);
getContentPane().add(jsp);
}
public class DrawPanel extends JPanel{
@Override
protected void paintComponent(Graphics grphcs) {
super.paintComponent(grphcs);
Graphics2D g2d = (Graphics2D) grphcs;
g2d.drawString("..long text....long text....long text....long text....long text....long text....long text....long text..", 10, 20);
}
}
public static void main(String[] args) {
new Main().setVisible(true);
}
}
Sortie prévue: Une fenêtre avec le long texte et barre de défilement horizontale.
J'ai également essayé de surcharger la méthode getPreferredSize (comme le suggèrent certaines réponses dans d'autres questions) mais cela ne semble pas fonctionner. Aussi, quelqu'un peut-il expliquer pourquoi les barres de défilement apparaissent (en utilisant jscrollpane) quand il y a des étiquettes ou des boutons dans un panneau qui est ajouté au jscrollpane, mais la même chose ne fonctionne pas dans le cas ci-dessus? Toute aide sera très appréciée.
Vous devez redimensionner le jpanel. – matt
J'ai essayé cela aussi en surchargeant la méthode setSize dans le DrawPanel, j'ai eu la sortie suivante: [link] (http://imgur.com/a/28xTW) –