[英]Closing JFrame from JApplet
我被卡住了。 我有一个JFrame,单击JButton时会启动另一个JFrame中的JApplet。 我想知道的是,如何通过单击JApplet中的“退出” JButton来关闭JApplet所在的JFrame。
编辑:我削减了代码以显示我的意思。
import javax.swing.JFrame;
public class Example {
public static void main(String[] args) {
Menu frame = new Menu();
frame.setTitle("Menu");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
}
。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Menu extends JFrame{
private JButton jbt=new JButton("Applet");
public Menu(){
add(jbt);
ButtonListener listener=new ButtonListener();
jbt.addActionListener(listener);
}
public static void run(JApplet applet, int width, int height,String title){
JFrame myFrame = new JFrame();
myFrame.setTitle(title);
myFrame.getContentPane().add(applet);
myFrame.setSize(width, height);
myFrame.setResizable(true);
myFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
applet.init();
applet.start();
myFrame.setVisible(true);
}
class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if (e.getSource()==jbt)
{
run(new myApplet(),400,180,"Applet");
}
}
}
}
。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class myApplet extends JApplet{
private JButton jbtExit=new JButton();
@Override
public void init(){
add(jbtExit);
jbtExit.addActionListener(new ButtonListener());
}
class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if (e.getSource()==jbtExit)
{
setVisible(false);
}
}
}
有关一些一般性想法,请参见关闭应用程序 。
您应该可以对Exit按钮使用ExitAction
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.