public aFrame extends Frame implements WindowListener {
public aFrame(){
addWindowListener( this );
}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowOpened(WindowEvent e){}
public void windowClosing(WindowEvent e){ System.exit(0); }
public void windowClosed(WindowEvent e){}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
}
======================
public class aFrame extends Frame {
public aFrame(){
addWindowListener( new Terminate() );
}
}
class Terminate extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
======================
public class aFrame extends Frame {
public aFrame() {
addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
}
}
20110329
多種Close a Frame
20110328
Java中JFrame.getContentPane().add(pane)與JFrame.add(pane)有什麼區別
JFrame jf = new JFrame();
(1)jf.add(panel);
(2)if.getContentPane().add(pane);
1.4JDK:
是有區別的,在添加jf.add(panel)時這panel會與rootPane平級,而非添加到RootPane底下的containPane
1.5後:
沒有區別,jf.add(panel)會轉發成if.getContentPane().add(pane)
rootPane:
當創建一個JFrame物件時,建構子會給物件默認添加一層rootPane,rootPane包含有自已的LayoutManager、GlassPane(總是為於最上層)、layeredPane管理器(負責管理menuBar 和 contentPane)、contentPane、menuBar (可有可無)
jf.setBackground(Color.blue);
jf.getContentPane().setBackground(Color.black);
這兩句代碼,看看效果(實際上上面一句並不能改變界面的背景色,下面一句才可以,因為contenPane把rootPane給擋住了,上面一句是改變了jf.rootPane的背景色,但是你眼睛看到的並不是rootPane,其實是佔據rootPane全版面的contenPane.)
另外
jf.getContentPane()==jf.getRootPane().getContentPane()
上面的比較返回的true
所以你調用jf.getContentPane().add(panel) 其實是把panel添加到rootPane上面了 這個時候panel和rootPane就不是平級的了
(1)jf.add(panel);
(2)if.getContentPane().add(pane);
1.4JDK:
是有區別的,在添加jf.add(panel)時這panel會與rootPane平級,而非添加到RootPane底下的containPane
1.5後:
沒有區別,jf.add(panel)會轉發成if.getContentPane().add(pane)
rootPane:
當創建一個JFrame物件時,建構子會給物件默認添加一層rootPane,rootPane包含有自已的LayoutManager、GlassPane(總是為於最上層)、layeredPane管理器(負責管理menuBar 和 contentPane)、contentPane、menuBar (可有可無)
jf.setBackground(Color.blue);
jf.getContentPane().setBackground(Color.black);
這兩句代碼,看看效果(實際上上面一句並不能改變界面的背景色,下面一句才可以,因為contenPane把rootPane給擋住了,上面一句是改變了jf.rootPane的背景色,但是你眼睛看到的並不是rootPane,其實是佔據rootPane全版面的contenPane.)
另外
jf.getContentPane()==jf.getRootPane().getContentPane()
上面的比較返回的true
所以你調用jf.getContentPane().add(panel) 其實是把panel添加到rootPane上面了 這個時候panel和rootPane就不是平級的了
訂閱:
文章 (Atom)