gpt4 book ai didi

java - 在Java中,如何防止图形Applet多次运行?

转载 作者:太空宇宙 更新时间:2023-11-04 13:10:39 25 4
gpt4 key购买 nike

我正在尝试编写一个绘制分形的简单程序,并编写了以下代码。我运行了一下测试是否有效,发现每次都会运行两次。我寻找答案,发现这可能与图形窗口重绘和重新运行整个代码有关。在我见过的其他问题中,似乎没有人关心让代码运行多次,而是关心为什么这样做,并且因此没有提供任何补救措施。然而,由于我使用的是扫描仪,所以让程序重复运行非常不方便,我主要关心的是让它只运行一次。

import java.awt.*;
import java.applet.*;
import java.util.Scanner;
public class FractalCreator extends Applet
{
public void paint(Graphics g)
{
Scanner s=new Scanner(System.in);
System.out.println("How many branches do you want each node to have?");
int branches=s.nextInt();
System.out.println("How many times do you want the fractal to repeat?");
int repetitions=s.nextInt();
}
}

我想知道的是如何阻止图形窗口重新绘制和重新运行所有内容,或者,如果不可能,我可以使用 Graphics 类的哪些替代方法来绘制内容。

我将代码放入具有 main 方法的非 Applet 代码中,并且它按照预期运行了一次。

如果相关的话,我正在使用 DrJava 作为 IDE。

最佳答案

你的问题的答案是,你不能。

所以你把很多事情搞砸了。小程序(通常)不会有用于使用交互的控制台 - 您尤其不应该在 paint 方法中执行此操作,因为这可能会对用户与 UI 的交互产生不利影响。

GUI 是事件驱动的环境,也就是说,发生某些事情并且您对其做出响应。您仍然以线性/程序/基于控制台的方式思考

我的第一条建议是,根本不要使用小程序,它们现在不值得您花时间学习。如果你想要图形输出,我会从Creating a GUI With JFC/Swing开始更好地了解如何通过事件驱动的环境与用户交互。

然后我建议您看看Painting in AWT and SwingPerforming Custom Painting更好地了解 Swing 中绘画的工作原理。

关于java - 在Java中,如何防止图形Applet多次运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com