这是使用awt包的Java图形的初学者问题。我在网上找到了这段代码来绘制一些简单的图形。
import java.awt.*;
public class SimpleGraphics extends Canvas{
/**
* @param args
*/
public static void main(String[] args) {
SimpleGraphics c = new SimpleGraphics();
c.setBackground(Color.white);
c.setSize(250, 250);
Frame f = new Frame();
f.add(c);
f.setLayout(new FlowLayout());
f.setSize(350,350);
f.setVisible(true);
}
public void paint(Graphics g){
g.setColor(Color.blue);
g.drawLine(30, 30, 80, 80);
g.drawRect(20, 150, 100, 100);
g.fillRect(20, 150, 100, 100);
g.fillOval(150, 20, 100, 100);
}
}
在main方法中,在画布上没有调用paint()。但是我运行了该程序并且它可以工作,那么paint()方法如何运行?
该paint
方法由事件调度线程(EDT)调用,并且基本上不受您的控制。
它的工作方式如下:当 实现
用户界面(setVisible(true)
以您的情况为例)时,Swing将启动EDT。然后,此EDT线程在后台运行,并且每当需要绘制您的组件时,它将调用paint
带有适当Graphics
实例的方法供您绘画。
那么,什么时候“需要”重新粉刷?-例如当
repaint
只需假定在必要时 将 调用它。
问题内容: 有人建议可以怎一个JAVA程序运行不写一个主要方法.. 例如: 不使用类中的公共静态void main(String arg []),如何在控制台上打印以上行。 问题答案: 直到JDK6,您都可以使用静态初始化程序块来打印消息。这样,一旦您的班级被加载,消息就会被打印出来。然后,技巧就变成了使用另一个程序来加载您的类。 当然,您可以按如下方式运行程序,您将看到消息;但是,该命令也会失败
问题内容: 我想知道像Karel这样的程序可以运行机器人,因为它没有使用main()方法。相反,它使用run()方法: 它是如何工作的? 问题答案: 实际的主要方法在其他地方。例如,在KarelRunner类中。当Java执行程序时,它实际上是在运行程序类中执行main方法。从该运行程序代码中调用您自己的run方法。
我有一个问题要解决,我应该在哪里从使用Java8 streams的员工列表中找到性别为男性的第n个员工,如果没有找到,则返回可选的空。 下面是接受Employee对象列表和整数n的方法,其中n表示必须返回的第n个男性雇员(如果存在的话)。
我有一个从maven项目构建的jar文件。在它的pom,我有Spring靴和防波堤。我的项目的目的是在我的网站上实现web套接字。Jetty的web套接字实现不包含一个主方法,只包含一个类,这样它就知道当它收到web套接字请求时该怎么做。然后我尝试java-jar target/myproject-0.0.1-snapshot.jar,但我得到错误“no main manifest attribu
我有一个带有私有方法的类,该方法调用一些外部类并执行它,如果不使用powermock,我如何防止这种情况发生?(该项目使用Junit5,目前还不支持powermock)。 我考虑过将这些函数移到外面,但我觉得有时方法确实属于特定的类,因为它们是它的一部分,将它们移出对我来说没有意义,下面只是一个例子来说明。 我已经知道大多数人会说不要测试私有方法,但a.我不完全同意,b.我不想在这里测试这个方法,
问题内容: 我正试图从这样打电话: 该代码可以正常编译,但是会失败。我不知道为什么我无法得到。有人可以帮我吗? 问题答案: 是输入输出参数。进行呼叫时,必须将其设置为缓冲区()的大小。它的类型也是,所以在Go中使用。Windows 类型是指向的指针(具有)。参见来源。 还返回3个值: 存储返回并打印。完成此操作后,您会更早发现错误: 印刷品: 这意味着更多的数据比什么适合入缓冲区您传递可用- 或者