不知道如何调用paint方法

时间:2011-03-29 12:30:30

标签: java swing

您好我想知道如何调用paint方法...

我是一名新手程序员,我真的只是在试验像油漆这样的东西。

我想要制作的程序是游戏中有3个梯级,游戏的目的是将不同大小的磁盘从左/右横档移动到右/左横档。

这是我的代码(没有在附近完成给我休息):

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int amount = 0;

    // get the amount of rectangles to draw to represent disks
    while (amount <= 1 && amount >= 5) {
        System.out.print("Please enter amount of discs to use(less than 7 more than one).");
        amount = scan.nextInt();            
    }
}

public void paint(Graphics g) {
    // draw a certain amount of rectangles in ascending order
    if (amount <= 1 && amount >= 5) {
        for (int i = 0; i < amount; i++) {
            g.fillRect(220 - (20 * i), 200 + (10 * i), 100 - (20 * i), 20);
        }
    }
}

3 个答案:

答案 0 :(得分:4)

在创建对象时,将首次调用paint方法。

要强制再次调用paint()方法,如果要传入新的update(Graphics g)对象,可以调用Graphics,但通常我建议使用repaint()方法,因为这样它将被安排为asap。

答案 1 :(得分:2)

您无需拨打电话。相反,您应该使用Java为您创建的主循环。

通常的方法是扩展JPanel(请参阅此问题:How to make canvas with Swing?)并覆盖paint()方法。

现在创建一个JFrame,向其添加新的UI组件并打开框架。然后,Java将确保它被渲染。

答案 2 :(得分:0)

我不是教授别人的专家或其他东西,但你需要将你的代码绘制到paintComponent(Graphics g)方法而不是绘制,然后调用重绘方法。