如何在框架中心设置对象?

时间:2017-01-23 09:34:09

标签: java swing layout border

我是编程新手。我不确定如何将对象放在框架的中心。这是我有多远:

public class LetSee extends JPanel {

     public void paintComponent(Graphics g) {

          int row;   // Row number, from 0 to 7
          int col;   // Column number, from 0 to 7
          int x,y;   // Top-left corner of square
          for ( row = 0;  row < 5;  row++ ) {

             for ( col = 0;  col < 5;  col++) {
                x = col * 60;
                y = row * 60;
                if ( (row % 2) == (col % 2) )
                   g.drawRect(x, y, 60, 60);

                else
                   g.drawRect(x, y, 60, 60);

             } 

          } // end for row

      }
 }



public class LetSeeFrame extends JFrame {

    public LetSeeFrame(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(1900, 1000);
        setVisible(true);
        LetSee let = new LetSee();
        let.setLayout(new BorderLayout());
        add(let,BorderLayout.CENTER);
        setLocationRelativeTo(null);  
    }

    public static void main(String[] args) {
        LetSeeFrame l = new LetSeeFrame();  
    }
}

1 个答案:

答案 0 :(得分:2)

实际上你的面板在框架中居中,但它绘制的内容不是。

您应该使用width的{​​{1}}和height来使图纸居中。

同时将您的尺寸和数字放入变量中,当您在代码中多次使用它们时,它不易出错。

最后正如@MadProgrammer在评论中所说:

  

在进行任何自定义之前,不要忘记调用super.paintComponent   绘画,如果你没有,奇怪的事情就会开始出错。也   paintComponent不需要公开,任何人都不应该打电话给它   直接

JPanel