Hello Swing !!
2004/7/26
JFrameを使って、「何もない・何もしない」アプリケーションをつくりました。もうすこし手を加えて、役に立ちそうなものにしましょう。
せっかくつくったアプリケーションですが、ソースを見ると
となっている。このプログラムが悪いとは言うつもりはないし、いろいろなサンプルを見るとこのような形式をとるものが大変多い。
しかし、すべてをHello_Swingクラスに記述しているということは、
ということである。よって、ものとプログラムを2つのクラスに分割する。
では、この方針に従い、Hello_Swingを改造しよう。
/* * 作成日: 2004/07/16 * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ /** * @author j00300 * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ import javax.swing.*; public class Hello_Swing { public static void main(String[] args) { try{ Frame1 frame1 = new Frame1() ; frame1.setLocation(200,200); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Windowを閉じるときの処理 //frame1.setDefaultCloseOperation(3); でもよい。このときは"import javax.swing.*;"は不要 } catch(Exception e){ e.printStackTrace(); } } }
メソッド | 機能 |
Frame1() | Frame1のコンストラクタ 実体はjInit()に記述 |
jInit() | Frame1の初期化 ラベルやボタンを追加している |
//import javax.swing.JFrame; import java.awt.*; import java.awt.event.*; import javax.swing.*; /* * 作成日: 2004/07/16 * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ /** * @author j00300 * * この生成されたコメントの挿入されるテンプレートを変更するため * ウィンドウ > 設定 > Java > コード生成 > コードとコメント */ public class Frame1 extends JFrame { JPanel contentPane; JLabel jLabel1 = new JLabel() ; JButton jButton1 = new JButton() ; public Frame1(){ enableEvents(AWTEvent.WINDOW_EVENT_MASK); try{ jInit() ; } catch(Exception e){ e.printStackTrace(); } } private void jInit(){ //Frameをつくる contentPane = (JPanel) this.getContentPane(); this.setSize(400,300); this.setTitle("Hello Swing"); contentPane.setLayout(null); //JLabelをつかう jLabel1.setText("Label1"); jLabel1.setBounds(20,20,120,30); jLabel1.setForeground(Color.GREEN); jLabel1.setBackground(new Color(128,0,128)); jLabel1.setOpaque(true); contentPane.add(jLabel1); //JButtonをつかう jButton1.setText("Touch Me!!"); jButton1.setBounds(20,60,120,30); contentPane.add(jButton1); //最後にFrame全体を表示 this.setVisible(true); } }
すべての基本JFrame | テキストフィールドとテキストエリア(JTextField & JTextArea) |