2009-09-26 77 views
0

我有設置繪圖面板大小的問題。我想要一個尺寸爲0f 600,600的繪圖板。但是,我發現繪圖板的尺寸小於600,600。看起來框架尺寸是600,600,這使得繪圖面板更小。我如何設置圖紙面板尺寸600,600?繪圖面板大小

.... 
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);  
    } 

我已經改變了代碼,但問題依然存在。 此時繪圖面板的尺寸大於預期的尺寸尺寸。

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); 
    } 

回答

0

問題解決

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

將組件的首選大小設置爲600,600,並在框架上調用pack()。

3

原因是有一些空間爲'插入'保留,如邊框。要知道需要多少額外空間,稱爲「getInsets()」。

0

按照NawaMan的建議進行操作,並考慮插入內容,或將「PaintSurface」對象的大小設置爲600x600。當然,你可能需要一個滾動窗格來獲得完整的大小。