绘图面板尺寸

时间:2009-09-26 14:39:23

标签: java drawing panel

我在设置绘图面板的大小时遇到​​问题。我想要一个尺寸为0,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); 
  }

4 个答案:

答案 0 :(得分:3)

原因是为“插入”保留了一些空间,例如边框。要知道需要多少额外空间,请使用框架“getInsets()”。

答案 1 :(得分:2)

将组件的首选大小设置为600,600,并在框架上调用pack()。

答案 2 :(得分:0)

按照NawaMan的建议进行操作,并考虑插图,或将“PaintSurface”对象的大小设置为600x600。当然,您可能需要滚动窗格才能获得完整尺寸。

答案 3 :(得分: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)); 
.....
}