public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { AddCourseFrm frame = new AddCourseFrm(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } });分析每一句的作用

时间: 2024-03-04 11:53:18 浏览: 14
这段代码是一个 Java 程序的入口方法,它的作用是启动一个可视化界面。 具体分析如下: 1. `public static void main(String[] args)`:这是 Java 程序的入口方法,它会在程序启动时自动执行。 2. `EventQueue.invokeLater(new Runnable() { ... })`:这是通过事件队列来启动 GUI 线程的方法,可以保证在正确的线程上运行 GUI 代码。 3. `new Runnable() { ... }`:这是一个匿名内部类,用于实现 Runnable 接口中的 run() 方法,以便在 GUI 线程上运行代码。 4. `public void run() { ... }`:这是 Runnable 接口中的 run() 方法的具体实现。 5. `AddCourseFrm frame = new AddCourseFrm();`:这是创建了一个名为 AddCourseFrm 的窗口对象,并将其赋值给变量 frame。 6. `frame.setVisible(true);`:这是显示窗口的方法,将窗口设置为可见状态。 7. `catch (Exception e) { e.printStackTrace(); }`:这是捕获任何可能出现的异常并打印出来,以便调试程序。
相关问题

分析代码: public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { sheji window = new sheji(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }

这是一个使用Java Swing编写GUI程序的主方法。其中,EventQueue.invokeLater()方法是一个JDK提供的线程安全的调用GUI组件的方法。这个方法的参数是一个Runnable对象,在这里使用了一个匿名内部类来实现Runnable接口,这个内部类的run()方法中,创建了一个sheji类的实例,然后调用了这个实例的frame.setVisible(true)方法来显示GUI窗口。如果在创建GUI组件的过程中发生了异常,就会在catch块中打印异常堆栈信息。

public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { ChengYuJieLong frame= new ChengYuJieLong(); // 设置窗口关闭时退出程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); }

这段代码实现了在事件分派线程中创建并显示 `ChengYuJieLong` 窗口。`EventQueue.invokeLater` 方法将 `Runnable` 对象添加到事件队列中,并在调用线程执行完毕后异步地运行该对象的 `run` 方法。 在 `run()` 方法中,您创建了一个 `ChengYuJieLong` 对象,并设置了其关闭行为和可见性。如果您没有在 `ChengYuJieLong` 构造函数中初始化窗口内容,您需要在这里添加构建窗口内容的代码。

相关推荐

import java.awt.Color; import java.awt.EventQueue; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; class BilliardBallFrame extends JFrame { public static void main(String[] args){ EventQueue.invokeLater(new Runnable(){ public void run(){ BilliardBallFrame frame=new BilliardBallFrame(); frame.setVisible(true); } }); } public BilliardBallFrame(){ super(); setBounds(100,100,326,202); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("撞球动画"); BilliardBallPanel panel=new BilliardBallPanel(); getContentPane().add(panel); Thread thread=new Thread(panel); thread.start(); } class BilliardBallPanel extends JPanel implements Runnable{ int x1=0; int y1=60; int width=30; int height=30; int x2=326-30; int y2=60; public void paint(Graphics g){ //绘制两个小球 g.clearRect(0, 0, getWidth(), getHeight()); g.setColor(Color.BLUE); g.fillOval(x1, y1, width, height); g.setColor(Color.RED); g.fillOval(x2, y2, width,height); } public void run(){ boolean flag1=true; boolean flag2=true; while(true){ if(x1+width>=x2+1){ //小球撞击 x1=x1+5; width=width-10; x2=x1+width; flag1=false; flag2=false; repaint(); }else{ //小球1从左向右移动 if(flag1){ x1=x1+10; width=30; }else{ //小球1从右向左移动 x1=x1-10; width=30; //小球1撞墙 if(x1<=0){ x1=0; flag1=true; } } if(flag2){ //小球2从向左移动 x2=x2-10; width=30; }else{ //相撞后从左向右移动 x2=x2+10; width=30; //小球2撞墙 if(x2>=getWidth()-width){ x2=getWidth()-width; flag2=true; } } } try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } repaint(); } } } }

最新推荐

recommend-type

java编写的可以打开摄像头程序及说明

public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { frame = new TextWindow(); frame.setVisible(true); frame....
recommend-type

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板
recommend-type

wireshark安装教程入门

wireshark安装教程入门
recommend-type

基于C++负数据库的隐私保护在线医疗诊断系统

【作品名称】:基于C++负数据库的隐私保护在线医疗诊断系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于负数据库的隐私保护在线医疗诊断系统 NDBMedicalSystem 客户端及服务器端 本项目是在保护用户隐私的前提下,完成了对新冠肺炎、乳腺癌、眼疾等多种疾病的智能诊断。
recommend-type

基本的嵌入式操作系统给

任务管理
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。