A.java中的
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//这里边该如何让B.java运行呢?
}
});
刚学java 学到了类的引用,到了写具体案例就不会了,都说的太笼统了。能详细点说明一下吗?
可以在主程序写个全局变量,在main主程序套个if,里面写b的实例化,在a的button监听里面用反射把main里面的全局变量修改,对了,记得那个if要用多线程
下面是一个例子
import javax.swing.*;
import java.awt.*;
public class A {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jFrame.getContentPane().add(createButton(jFrame));
jFrame.setSize(300, 100);
jFrame.setVisible(true);
}
private static JButton createButton(Window owner) {
JButton button = new JButton("click me");
button.addActionListener(e -> B.hello(owner)); // A 调用 B
return button;
}
}
class B {
public static void hello(Window owner) {
JDialog dialog = new JDialog(owner, "hello", Dialog.ModalityType.APPLICATION_MODAL);
dialog.getContentPane().add(new JLabel("Hello!"));
dialog.setSize(100, 50);
dialog.setVisible(true);
}
}