java - 从 JApplet 关闭 JFrame

标签 java swing jframe 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);
        }

    }
 }

最佳答案

参见Closing an Application一些一般性的想法。

您应该能够使用 ExitAction 作为退出按钮。

关于java - 从 JApplet 关闭 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698900/

相关文章:

java - 如何在java中导入javax?

java - 如何在以下代码中根据我的喜好设置 JTextArea 和 JTextField 的大小?

java JLabel 在 90 度旋转后无法正确重新绘制调整大小的标签

Java-将选择的一个单选按钮的值传递到另一框架

java - JFrame 上 JMenuBar 中的空 JMenuItem

java - 服务器重启后 Hazelcast/CONCURRENT_MAP_LOCK 出现问题

java - 如何制作JFrame动画?

java - 是否有 Java 的 Matcher 类的 PHP 端口?

java - 在jlabel中水平显示循环

java - 在单词上显示工具提示 - 在搜索文本文件的含义后