弱弱的一个问题!100分 !!

wangqiu 2006-12-18 09:00:44
public class MainApp {
boolean packFrame = false;

/**
* Construct and show the application.
*/
public MainApp() {
MainFrame frame = new MainFrame();

//frame.setVisible(true);
// Validate frames that have preset sizes
// Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
} else {
frame.validate();
}

// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {

frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2 ,
(screenSize.height - frameSize.height) / 2);

frame.setVisible(true);
}

/**
* Application entry point.
*
* @param args String[]
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
//SysUtil.SysInit();
System.out.println("我是你爷爷");
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}

new MainApp();
}
});
}
}

这段代码中
if (packFrame) {
frame.pack();
} else {
frame.validate();
}

// Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {

frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2 ,
(screenSize.height - frameSize.height) / 2);

1、这段比较窗体初始化的代码在什么情况下使用,觉得没有也可以啊,我是菜鸟,请大侠指点?

2、在这段代码中
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
//SysUtil.SysInit();
System.out.println("我是你爷爷");
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception exception) {
exception.printStackTrace();
}

new MainApp();
}
});

为什么要要用这样一个匿名线程,来实现窗体的的调用??


以上问题比较菜,请大家指点!!
...全文
261 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyetao08 2006-12-19
  • 打赏
  • 举报
回复
eclipse,jbuilder是直接new一个对象的.........
wangqiu 2006-12-19
  • 打赏
  • 举报
回复
我知道是这个意思,只是觉得奇怪,呵呵!!不过是不是大多数情况下,都不会出现窗口过大后你没法操作的问题????

hdhmail2000 2006-12-19
  • 打赏
  • 举报
回复
1、// Center the window,注释里都写好了,还有解决了窗口过大后你没法操作的问题,让你的窗口顶多与屏幕一样大,也就是最大化的时候。这个问题很有必要,我在linux下面打开忘了是netbeans还是eclipse时,窗体就是大于了屏幕,没法进行鼠标操作。
2、我也支持这个:如果单独就是这个程序应该是没什么用处的。但是如果程序很大的情况下,有多个任务或是线程在运行的情况,可以防止block线程、死锁之类的问题。
diggywang 2006-12-18
  • 打赏
  • 举报
回复
其实区别真的不是很大,现在Netbeans自动生成代码就是这样的,呵!像eclipse,jbuilder是直接new一个对象,没什么区别。不过如果是jdialog,就有用些,有时你并不想让整个单个线程一口气跑完,需要传递某些值什么的就好用了
lixiaoxue85 2006-12-18
  • 打赏
  • 举报
回复
SwingUtilities.invokeLater实现了异步调用 相当于一个人在跑步 然后把棒子交给另一个人
让他去跑完后面的路程 然后自己去做别的事情
和他相对的是SwingUtilities.invokeAndWait 这相当把棒子交给另一个人 让他去跑后面的路
但是还是会等待他跑回来 再去做自己的事情
作用就是异步 想当于搞了个新线程去做另外件事情
fool_leave 2006-12-18
  • 打赏
  • 举报
回复
直接调用也可以
xiangaxiang 2006-12-18
  • 打赏
  • 举报
回复
如果单独就是这个程序应该是没什么用处的。但是如果程序很大的情况下,有多个任务或是线程在运行的情况,可以防止block线程、死锁之类的问题。
内容概要:本文围绕永磁同步电机(PMSM)的速度控制,深入研究了基于矢量控制的Simulink仿真实现方法。通过建立PMSM的数学模型,结合Clarke和Park坐标变换,实现了对电机磁链与转矩的解耦控制,进而实现对转速的精确调节。文中系统阐述了矢量控制系统的核心架构,涵盖SVPWM调制模块、电流环与速度环PI控制器的设计原理,并在Simulink环境中搭建完整的闭环控制系统,通过不同负载与转速工况下的仿真实验,验证了该控制策略具备良好的动态响应能力和稳态精度。; 适合人群:具备电机控制理论基础和Simulink仿真操作经验的电气工程、自动化及相关专业的本科高年级学生、硕士研究生、科研人员,以及从事电机驱动系统开发的工程技术人员。; 使用场景及目标:①深入理解PMSM矢量控制的理论基础与实现机制;②掌握在Simulink中构建电机控制系统仿真模型的关键技术;③为实际工程应用中的高性能电机调速系统设计提供有效的仿真验证方案和技术参考;④作为高等院校相关课程的教学案例或毕业设计指导素材。; 阅读建议:建议读者结合电机学、电力电子技术和自动控制原理等基础知识进行学习,重点关注坐标变换的物理意义、PI控制器的参数整定方法以及SVPWM的生成逻辑,务必动手运行并调试所提供的仿真模型,通过改变参数观察系统响应,以深化对矢量控制动态性能的理解。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧