簡體   English   中英

從JApplet關閉JFrame

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM