/*
 *下面有两个类,先运行第二个类,会每过一秒打印一个num,值是0;然后运行第一个类(只要看closing方法就行了),在关闭窗
 *口时,会调用第二个类的一个方法,启动一个新线程, 把num的值改为10,可是我的程序做不到!应该是在调用时,创建了新的
 *对象所致,可是我不会做,麻烦大虾们帮哈子!
 */
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;public class Test {
private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="208,67"
private JPanel jContentPane = null;
private JButton jButton = null; /**
 * This method initializes jFrame
 * 
 * @return javax.swing.JFrame
 */
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setSize(new Dimension(296, 185));
jFrame.setVisible(true);
jFrame.setContentPane(getJContentPane());
jFrame.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
new A().setting();
}
});
}
return jFrame;
} /**
 * This method initializes jContentPane
 * 
 * @return javax.swing.JPanel
 */
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJButton(), BorderLayout.CENTER);
}
return jContentPane;
} /**
 * This method initializes jButton
 * 
 * @return javax.swing.JButton
 */
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
}
return jButton;
} public static void main(String[] args) {
new Test().getJFrame(); }}/**********************************************************************************/import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;public class A { int num = 0;

class Runner implements Runnable{
public void run() {
num = 10 ;
}
}

public void setting(){
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
new Thread(new Runner()).start();
System.out.println("线程启动");
} public static void main(String[] args) {
A a = new A();
while (true) {
System.out.println(a.num);            
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} }
}
}