如何获得面板的大小

时间:2017-12-13 15:26:54

标签: java

我试图在Panel类中获得面板的高度和宽度,但我不确定如何。

我的主要课程:

public class Pong extends JFrame 
{
    public static void main(String[] args) 
    {
        JFrame frame = new JFrame();
        frame.setSize(1000, 800);
        frame.setLocation(500, 150);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Pong");
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setContentPane(new Paneel());
        frame.getContentPane().setBackground(Color.black);
    }
}

我的小组课程:

public class Paneel extends JPanel 
{
    public Paneel() {

    }
}

我希望有人可以帮助我。

提前致谢!

1 个答案:

答案 0 :(得分:3)

一个选项是使用getSize(),另一个选项与您的示例更相关的是getWidth()getHeight()

要获得面板类中的宽度和高度:

public class Paneel extends JPanel 
{
    public Paneel() {
        int width = getWidth();
        int height = getHeight();
    }
}

我希望这就是你要找的东西:)

编辑:

  

奇怪的是,即使我添加了一个按钮,高度和都是0

它可能是0,因为你在实际“添加”它之前检查它的大小意味着它还没有一个独特的大小,运行以下代码,你会发现它不是0:

Pong.java:

public class Pong extends JFrame 
{
    public static void main(String[] args) 
    {
        JFrame frame = new JFrame();
        Paneel panel = new Paneel();

        frame.setSize(1000, 800);
        frame.setLocation(500, 150);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("Pong");
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setContentPane(panel);
        frame.getContentPane().setBackground(Color.black);

        panel.printSizes();
    }
}

请注意,我们要求面板在将其添加到框架后打印尺寸

Paneel.java:

public class Paneel extends JPanel 
{
    public Paneel() {

    }

    public void printSizes() {
        int width = getWidth();
        int height = getHeight();

        System.out.println(width);
        System.out.println(height);
    }
}