2009-09-26 6 views
0

J'ai un problème pour régler la taille du panneau de dessin. Je veux un panneau de dessin avec la taille 0,6 600 600. Cependant, je l'ai trouvé, la taille du panneau de dessin est inférieure à 600 600. Il semble que la taille de l'image soit de 600 600, ce qui rend le panneau de dessin plus petit. Comment puis-je définir la taille du panneau de dessin 600 600?Taille du panneau de dessin

.... 
public class DrawingBoardWithMatrix extends JFrame { 
    public static void main(String[] args) { 
     new DrawingBoardWithMatrix(); 
    } 

    public DrawingBoardWithMatrix(){  
     this.getContentPane().setBackground(Color.WHITE); 
     this.setSize(600, 600); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     this.add(new PaintSurface(), BorderLayout.CENTER); 
     this.setVisible(true); 
     setResizable(false);  
    } 

J'ai changé le code, mais le problème existe encore. A ce moment, la taille du panneau de dessin est supérieure à la dimension de taille souhaitée.

public class DrawingBoardWithMatrix extends JFrame { 
    public static void main(String[] args) { 
     new DrawingBoardWithMatrix(); 
    } 

    public DrawingBoardWithMatrix(){ 
     Container c = getContentPane(); 
     c.add(new PaintSurface(), BorderLayout.CENTER); 
     c.setPreferredSize(new Dimension(600,600)); 
     pack(); 
     this.setVisible(true); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
     setResizable(false); 
    } 

Répondre

0

Le problème est résolu

public DrawingBoardWithMatrix(){ 
     Container c = getContentPane(); 
     c.add(new PaintSurface(), BorderLayout.CENTER); 
     setResizable(false);  //put the code setResizable(false) before pack(); 
     pack(); 
     this.setVisible(true); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

    } 

public PaintSurface() { 
    this.setPreferredSize(new Dimension (600,600)); 
..... 
} 
2

Définissez la taille préférée de votre composant sur 600 600 et appelez pack() sur la trame.

3

La raison en est qu'il y a de l'espace réservé pour 'encart' tel que border. Pour savoir combien d'espace supplémentaire est nécessaire appelé le cadre 'getInsets()'.

0

faites comme NawaMan suggéré, et tenez compte des encarts, ou réglez la taille de votre objet 'PaintSurface' sur 600x600. Bien sûr, vous aurez peut-être besoin d'un volet de défilement pour obtenir la taille complète.