Javaデモ/Swing「JFrameスケルトン・テンプレート」(8)
import java.awt.Container;
import javax.swing.JFrame;
public class J005 extends JFrame {
static String sAppTitle = "Java Application";
static J005 oAppFrame;
Container content;
/**
* Launch the application.
*/
public static void main(String[] args) {
// 以前はイベントもメイン・スレッドでしたが、
// イベントはイベント・ディスパッチ・スレッドに分離されたために、
// GUIコンポーネントの設定もイベント・ディスパッチ・スレッドで設定しなければならなくなったので、
// メイン・スレッドでのGUIコンポーネントの設定はNGになりました、
// 下記のように「EventQueue.invokeLater()」でイベント・ディスパッチ・スレッドに登録しなければなりません。
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
oAppFrame = new J005();
oAppFrame.setVisible(true);
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public J005() {
// 閉じるボタンをクリックされた場合の動作を設定
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle(sAppTitle);
setLocation(50, 50);
// ContentPaneの実態はJFrameにビルトインされているデフォルト・パネル。
content = getContentPane();
content.setSize(350, 350);
// 「JFrame#setSize(~)」でフレーム・サイズを設定すると、
// タイトルも含むウインドウ全体のサイズになります。
// つまり、ウインドウ内の表示領域の縦がタイトルのサイズ分 少なくなります。
// 「JFrame#getContentPane().setPreferredSize(~)」で設定し、
// 「pack()」すれば、ContentPaneで設定された全表示領域が表示されます。
content.setPreferredSize(content.getSize());
pack();
// content.setLayout(null);
}
}
コメント
コメントを投稿