【问题标题】:Can't close frame in java?java不能关闭框架吗?
【发布时间】:2012-10-03 11:39:42
【问题描述】:

大家好,我正在用 java 编写一个小程序,这是我第一次尝试任何带有界面/图片的东西。

它为我制作了框架,但是当我单击关闭按钮 X 时,它并没有关闭它,只是将其视为什么都没发生……有什么想法吗?

class Graph extends Canvas{

    public Graph(){
        setSize(200, 200);
        setBackground(Color.white);
    }

    public static void main(String[] args){

        Graph gr = new Graph();  

        Frame aFrame = new Frame();
        aFrame.setSize(300, 300);       
        aFrame.add(gr);       
        aFrame.setVisible(true);

    }

【问题讨论】:

  • 你需要设置DefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
  • 我建议也看看 javax.swing.WindowConstants.DISPOSE_ON_CLOSE。

标签: java swing awt frame windowlistener


【解决方案1】:

那是 java.awt.Frame 吗?我认为您需要为此显式添加处理程序:

frame.addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent we){
    System.exit(0);
  }
}

我使用this 来源。

如果是摇摆,它会像jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

【讨论】:

    【解决方案2】:

    添加aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    【讨论】:

    • 这怎么行?...aFrameawt frame 而不是 Jframe
    【解决方案3】:
    class Graph extends Canvas{
    
    public Graph(){
        setSize(200, 200);
        setBackground(Color.white);
        addWindowListener( 
                  new java.awt.event.WindowAdapter() {
                    public void windowClosing( java.awt.event.WindowEvent e ) {
                      System.out.println( "Closing window!" );
                      dispose() ;
                      System.exit( 0 );
                    }
                    }
                );
    }
    
    public static void main(String[] args){
    
        Graph gr = new Graph();  
    
        Frame aFrame = new Frame();
        aFrame.setSize(300, 300);       
        aFrame.add(gr);       
        aFrame.setVisible(true);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 2012-12-25
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多