【问题标题】:Trying to Clear canvas for a Program尝试清除程序的画布
【发布时间】:2019-03-31 15:32:09
【问题描述】:

我正在使用 ObjectDraw 库,我有两种方法可以打印两种不同的模式。我正在使用onMouseClick(Location point) 方法在用户第一次单击画布时打印第一个图案,然后我想在第二次单击时打印第二个图案之前用canvas.clear(); 清除画布(依此类推)。

我很难找到一种方法来避免在该方法中同时发生所有事情。我尝试使用布尔变量,但我计划创建更多模式方法,所以我不确定该策略。有什么帮助吗?

这是我的onMouseClick(Location point) 方法在程序中的样子:

public void onMouseClick(Location point) {
           pattenrOne();
           canvas.clear();
           patternTwo();
    }

【问题讨论】:

  • 程序具有不同的状态,具体取决于显示的模式。要记住当前状态,变量是最好的选择。对于多种模式方法,您可以使用 int 变量而不是 boolean 或变量数组,具体取决于特定用例。

标签: java user-interface canvas awt


【解决方案1】:

我会将所有模式存储在数组或列表中,并使用int 变量来跟踪点击次数,从而跟踪要绘制的模式。然后,不要使用多种方法来绘制图案(patternOnepatternTwo 等),而是创建一个 drawPattern 方法:

public void drawPattern(int index) {
    arrayWithPatterns[index].draw();
}

在您的 Pattern 类中,定义一个 draw() 方法,其中的代码用于绘制该特定模式。

【讨论】:

    猜你喜欢
    • 2017-06-21
    • 2012-07-26
    • 2012-07-19
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多