关于java swing 编程的问题 5
publicstaticvoidmain(String[]args){EventQueue.invokeLater(newRunnable(){publicvoidrun...
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EventDemo frame = new EventDemo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
这段代码。问题
1、ntQueue.invokeLater(new Runnable()是什么意思呢?
2、为什么都会有个run()方法?
我是菜鸟,不要笑我。 展开
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EventDemo frame = new EventDemo();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
这段代码。问题
1、ntQueue.invokeLater(new Runnable()是什么意思呢?
2、为什么都会有个run()方法?
我是菜鸟,不要笑我。 展开
2个回答
展开全部
首先回答你第二个问题:为什么都会有个run()方法?
因为你实例化了一个匿名类(这个类实现了Runnable接口),这个接口就有一个为实现的方法就是run()。所以要创建实例就必须将所有implements来的接口都实现掉。这个就是为什么有个run。
其次在回答你第二个问题:ntQueue.invokeLater(new Runnable()是什么意思呢?
这个说来话就长了,这里边涉及到java应用线程问题,这个是Swing编程常用到的一个调用方式,
比较复杂。main方法启动后就起了一个main线程,而Swing GUI所有事件处理与相应都得在EDT(事件派发线程)上处理。里边的frame.setVisible(true);就得放在EDT中进行....所以呢?这是干这个用的
因为你实例化了一个匿名类(这个类实现了Runnable接口),这个接口就有一个为实现的方法就是run()。所以要创建实例就必须将所有implements来的接口都实现掉。这个就是为什么有个run。
其次在回答你第二个问题:ntQueue.invokeLater(new Runnable()是什么意思呢?
这个说来话就长了,这里边涉及到java应用线程问题,这个是Swing编程常用到的一个调用方式,
比较复杂。main方法启动后就起了一个main线程,而Swing GUI所有事件处理与相应都得在EDT(事件派发线程)上处理。里边的frame.setVisible(true);就得放在EDT中进行....所以呢?这是干这个用的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询