首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注满StackOverFlow、IDEA

注满StackOverFlow、IDEA
EN

Stack Overflow用户
提问于 2017-11-09 00:02:10
回答 2查看 132关注 0票数 3

我正试着给洪水填水程序,但递归有任何问题。错误信息:“java.lang.StackOverflowError线程中的异常”AWT 0“

这是我的代码:

代码语言:javascript
复制
public class FillerSeedFill<PixelType> {
    public RasterImage<PixelType> filler (RasterImage<PixelType> img,
                                          int x, int y,
                                          PixelType newPixel,
                                          PixelType borderPixel,
                                          PixelType currentPixel
                                          ){

        RasterImage<PixelType> result = img;
        if ( borderPixel != currentPixel){
            if(currentPixel!=newPixel) {

                result = result.withPixel(x, y, newPixel);

                filler(img,x+1,y,newPixel,borderPixel,currentPixel);
                filler(img,x-1,y,newPixel,borderPixel,currentPixel);
                filler(img,x,y+1,newPixel,borderPixel,currentPixel);
                filler(img,x,y-1,newPixel,borderPixel,currentPixel);

                return result;
            }
        }
        return result;
    }
}

在画布上:

代码语言:javascript
复制
if(jComboBoxSelectColoring.getSelectedIndex()==0){
   System.out.println("Seed fill");
   int currentPixel = 0x2f2f2f;
   System.out.println(currentPixel);
   fillerSeedFill.filler(rasterImage,
        previousX,previousY,
        0xC4D4AF,
        0x8AC249,
        currentPixel);
   System.out.println(previousX+" "+previousY);
   panel.repaint();
}

有什么可能改变XSS的想法吗?我记得在Eclipse是这样的。(-XSS100M)

currentPixel是canva的背景(0x2f2f2f)。

编辑: In previousX和Y是来自侦听器的光标的int位置。

编辑解决了:的问题是当前像素没有取颜色的实际值。它有康斯特。0x2f2f2f这样的比较是没有意义的。*)。谢谢大家

EN

回答 2

Stack Overflow用户

发布于 2017-11-09 00:14:24

要在intelliJ中设置arg,可以这样做:定义运行/调试配置的配置选项

  1. 单击“编辑运行/调试配置”对话框的“配置”选项卡。
  2. 在Main类字段中,指定包含main()方法的类。为此,请手动键入完全限定名,或单击省略号按钮,然后从“选择主类”对话框中选择所需的类。在“选择主类”对话框中,可以使用下列方式之一找到所需的类:
  3. 单击Project选项卡,并从项目树视图中选择带有main()方法的类。
  4. 单击选项卡并开始键入类名。键入时,可用类的列表会缩小以与条目匹配。单击OK,或在准备就绪时按Enter。
  5. 在VM options字段中,键入可选VM参数,例如堆大小、垃圾收集选项、文件编码等。如果VM参数行太长,请单击/help/img/idea/2017.2/edorIcon.gif并在编辑器对话框中键入文本。
  6. 在parameters字段中,键入应通过其参数数组传递给main()方法的参数的可选列表。
  7. 在“工作目录”字段中,指定应用程序在运行时将使用的当前目录。
  8. 在和SDK的模块字段中,从项目中存在的模块列表中选择所需的模块。

资料来源:https://www.jetbrains.com/help/idea/setting-configuration-options.html

票数 0
EN

Stack Overflow用户

发布于 2017-11-09 16:59:31

增加堆栈大小可能是不够的,除了非常小的图像,所以您可能想要改为迭代算法。一个简单的选项是有一个Deque,您可以将坐标填入其中,然后取出它们,类似于下面的伪代码:

代码语言:javascript
复制
Deque<Point> queue = new ArrayDeque<>();
queue.add(new Point(x, y));
while (!queue.isEmpty()) {
    Point pt = queue.poll();
    // then do the same thing you were already doing, except use pt.x and pt.y,
    // and add new points to the queue instead of recursive calling 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47191804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档