如何按比例拟合框架中的矩形?

时间:2013-05-07 00:00:19

标签: java swing paint java-2d jcomponent

尝试绘制一个不同大小的矩形,如何按比例拟合一个框架(假设框架是固定的)?

public class Draw extends JComponent {
    public void paint(Graphics g) {
        int width = 100;
        int length = 100;
        g.drawRect(10, 10, width, length);
    }
}

public class DrawRect { 
    public static void main(String[] a) {
        JFrame frame = new JFrame();
        frame.setSize(400, 600));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        Container content = frame.getContentPane();
        content.add(new Draw());
   }
}

1 个答案:

答案 0 :(得分:2)

  1. 自定义绘制是通过覆盖paintComponent(...)方法而不是paint()方法完成的。这个建议每天都有。搜索论坛以获取更多信息和示例。

  2. 如果您想知道组件可用的空间,则可以调用getWidth()和getHeight()方法。一旦知道了这些值,就可以确定要绘制矩形的大小。

  3. 在框架可见之前,应将组件添加到框架中。

  4. 您不需要使用getContentPane()方法。从JDK5开始,您只需将组件直接添加到框架中,它们就会被添加到内容窗格中。