我是 JAVA 新手。只是我想在窗口中创建另一个机器人作为以下代码中的另一个线程。我尝试使用 thread.sleep 完成此任务,但无法完成任务。任何人都可以在这方面帮助我吗?
public static void main(String[] args)
{
JFrame window = new JFrame("Example App (Swing)");
SwingArena arena = new SwingArena();
arena.addListener((x, y) ->
{ arena.setRobotPosition(2,2);
System.out.println("Arena click at (" + x + "," + y + ")");
});
JToolBar toolbar = new JToolBar();
JLabel label = new JLabel("Score: 999");
toolbar.add(label);
JTextArea logger = new JTextArea();
JScrollPane loggerArea = new JScrollPane(logger);
loggerArea.setBorder(BorderFactory.createEtchedBorder());
logger.append("Hello\n");
logger.append("World\n");
JSplitPane splitPane = new JSplitPane(
JSplitPane.HORIZONTAL_SPLIT, arena, logger);
Container contentPane = window.getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(toolbar, BorderLayout.NORTH);
contentPane.add(splitPane, BorderLayout.CENTER);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setPreferredSize(new Dimension(800, 800));
window.pack();
window.setVisible(true);
splitPane.setDividerLocation(0.75);
Thread updater = new Thread(new Runnable(){
@Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
try {Thread.sleep(2000);
SwingArena arena2 = new SwingArena();
arena2.addListener((x, y) ->
{ arena2.setRobotPosition(2,2);
System.out.println("Arena click at (" + x + "," + y + ")");
});
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
window.pack();
}
}});
updater.start();
}