Java 使用类中的简单小程序
我有一个简单的问题,我创建了一个小程序来显示一些结果:Java 使用类中的简单小程序,java,japplet,Java,Japplet,我有一个简单的问题,我创建了一个小程序来显示一些结果: public class Plot2D extends JApplet { public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.red); Dimension size = getSize(); Insets insets = getInsets();
public class Plot2D extends JApplet {
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.red);
Dimension size = getSize();
Insets insets = getInsets();
int w = size.width - insets.left - insets.right;
int h = size.height - insets.top - insets.bottom;
Random r = new Random();
for (int i = 0; i < 1000; i++) {
int x = Math.abs(r.nextInt()) % w;
int y = Math.abs(r.nextInt()) % h;
g2d.drawLine(x, y, x, y);
}
}
public void main(String[] args) {
JFrame frame = new JFrame("Points");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// Timer timer = new Timer(2000, new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
frame.add(new Plot2D());
frame.setSize(200, 200);
frame.setResizable(false);
frame.setVisible(true);
// }
// });
// timer.setRepeats(true);
// timer.start();
};
}
它显示相同的图形,但小程序不会持续显示在屏幕上。我怎样才能做到这一点?我试过计时器,它似乎不起作用。有什么想法吗
多谢各位
编辑。作为对小程序如何调用的问题的回答,以下是课堂:
public class PedestrianSpawnerTest {
// @Before
// public void initialise(){
// frame = new JFrame("Points");
// }
public void test() {
int numberOfPedestrians = 10;
PedestrianSpawner pedestrianSpawner = new PedestrianSpawner();
pedestrianSpawner.SpawnRandomlyStandardPedestrians(numberOfPedestrians);
List<StandardPedestrian> listOfPedestrians = pedestrianSpawner
.getListOfPedestrians();
for (int i = 0; i < listOfPedestrians.size(); i++) {
System.out.println(listOfPedestrians.get(i).getId());
System.out.println(listOfPedestrians.get(i).getPosition());
System.out.println(listOfPedestrians.get(i).getVelocity());
System.out.println(listOfPedestrians.get(i).getTarget());
}
Plot2D plotting = new Plot2D();
plotting.main(null);
}
}
就在上面提到的两行之后。这似乎很有效。您应该改用这个:
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
详细讨论如下:
在经典应用程序(main)中:应用程序在退出之前等待JFrame
或者您可以使用System.exit()关闭所有内容
对于JUNIT:
JUNIT在测试结束时关闭所有GUI(通过exit()
有关防止此情况的信息:请参见:
例如,如果您阻止JUNIT完成(只需使用无限循环附加一个测试),并且您以特定顺序启动测试(在类之前使用@FixMethodOrder(MethodSorters.NAME\u升序)),它应该可以工作。您应该改为使用它:
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
详细讨论如下:
在经典应用程序(main)中:应用程序在退出之前等待JFrame
或者您可以使用System.exit()关闭所有内容
对于JUNIT:
JUNIT在测试结束时关闭所有GUI(通过exit()
有关防止此情况的信息:请参见:
例如,如果您阻止JUNIT完成(只需使用无限循环附加一个测试),并且您以特定的顺序启动测试(在类之前使用@FixMethodOrder(MethodSorters.NAME\u升序),它应该可以工作。您认为“小程序不在屏幕上持续”是什么意思?它消失了吗?它在屏幕上打印,但马上就消失了。当我运行Applet本身时(没有从类中调用它),它会在屏幕上打印并一直保持在屏幕上,直到我关闭它。这有意义吗?不,不是真的。。。你能给我们看看你的另一个班级吗,你从哪里打电话来的?我尝试了你的代码,从另一个类调用,只有一个main方法,它工作得非常好…好的,我已经发布了一个关于它的编辑。谢谢你的帮助。你说的“小程序不能在屏幕上持续”是什么意思?它消失了吗?它在屏幕上打印,但马上就消失了。当我运行Applet本身时(没有从类中调用它),它会在屏幕上打印并一直保持在屏幕上,直到我关闭它。这有意义吗?不,不是真的。。。你能给我们看看你的另一个班级吗,你从哪里打电话来的?我尝试了你的代码,从另一个类调用,只有一个main方法,它工作得非常好…好的,我已经发布了一个关于它的编辑。谢谢你的帮助。嗯,没什么区别。我尝试了各种近距离的行动,但没有真正成功。但是谢谢你的帖子。我没有同样的行为。事实上,在所有情况下,直接或通过其他类,JFrame保留并挂起程序的结尾。我必须执行系统。退出(0);您能描述一下您的环境吗,它是如何命名的?是的,当然,我正在使用Eclipse。在单元测试中调用小程序。我测试了几个类,它们现在返回随机数,我想在屏幕上显示它们。返回结果后,我通过上面描述的两行调用Applet,只是为了检查我做的事情是否正确。明白了吗?好的,我试试看。让我看看。谢谢,好吧,但也不行。但更接近于答案。嗯,确实没有区别。我尝试了各种近距离的行动,但没有真正成功。但是谢谢你的帖子。我没有同样的行为。事实上,在所有情况下,直接或通过其他类,JFrame保留并挂起程序的结尾。我必须执行系统。退出(0);您能描述一下您的环境吗,它是如何命名的?是的,当然,我正在使用Eclipse。在单元测试中调用小程序。我测试了几个类,它们现在返回随机数,我想在屏幕上显示它们。返回结果后,我通过上面描述的两行调用Applet,只是为了检查我做的事情是否正确。明白了吗?好的,我试试看。让我看看。谢谢,好吧,但也不行。但更接近答案。
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);