ボタンのプッシュでデータを取得

ボタンをプッシュするとデータフィールドからデータを取得します。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. メモ帳などでタイプして Push.java の名前で保存して下さい。
    //★ ボタンのプッシュでデータを取得    前田 稔
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    
    public class Push extends JFrame
    {   JButton     button;         //ボタン
        JTextField  inputfield;     //データフィールド
        Container   container;      //コンテナ
        inEventListener listener;   //リスナー
      
        // Constructor で画面を構成
        public Push(String label)
        {   super(label);
            listener = new inEventListener();
        
            // コンテントペイン取得
            container = getContentPane();
            container.setLayout(new BoxLayout(container,BoxLayout.Y_AXIS));
        
            // 流用中間パネル
            JPanel panel;
        
            // Label, TextField
            panel = new JPanel();
            panel.setLayout(new FlowLayout());
            panel.add(new JLabel("DATA"));
            panel.add(inputfield = new JTextField(6));
            container.add(panel);
    
            // Button
            panel = new JPanel();
            panel.setLayout(new FlowLayout());
            button = new JButton("押す");
            button.addActionListener(listener);
            panel.add(button);
            container.add(panel);
        }
      
        // 内部イベントリスナー
        class inEventListener implements ActionListener
        {   public void actionPerformed(ActionEvent e)
            {   Object source = e.getSource();
                if (source == button)
                {   System.out.println("プッシュされました " + inputfield.getText().trim());
                }
            }
        }
    
        // Main()
        public static void main(String[] args)
        {
            JFrame jframe = new Push("Button Push");
            jframe.pack();
            jframe.setVisible(true);
            // フレームを閉じるためのリスナークラスを登録
            jframe.addWindowListener(new WindowAdapter()
            {   public void windowClosing(WindowEvent e)
                {   System.exit(0);  }
            } );
        }
    }
    
  2. Push.java をコンパイルして class オブジェクトを実行して下さい。
    データフィールドに数字(文字列)をタイプしてボタンをクリックするとコンソール画面に表示されます。
    フレームを閉じるためのリスナークラスが登録されているので Window の「×」をクリックすると終了します。

プログラムの説明

  1. Swing(スィング)を使ったプログラムの基本的な説明は Swing を使って、色を設定して線を描く を参照して下さい。
    ボタン, データフィールド, コンテナ, リスナーを定義しています。
        JButton     button;         //ボタン
        JTextField  inputfield;     //データフィールド
        Container   container;      //コンテナ
        inEventListener listener;   //リスナー
        
  2. Push のコンストラクタで画面を構成しています。
    panel.add(new JLabel("DATA")); で panel に Label を設定します。
    panel.add(inputfield = new JTextField(6)); で panel に TextField を設定します。
    TextField からデータを取得するために、インスタンスを inputfield に格納します。
    container.add(panel); でコンテントペインへ張り付けます。
    button = new JButton("押す"); でボタンを作成します。
    button.addActionListener(listener) でリスナーを設定します。
    panel.add(button); でボタンを設定してコンテントペインへ張り付けます。
        public Push(String label)
        {   super(label);
            listener = new inEventListener();
        
            // コンテントペイン取得
            container = getContentPane();
            container.setLayout(new BoxLayout(container,BoxLayout.Y_AXIS));
        
            // 流用中間パネル
            JPanel panel;
        
            // Label, TextField
            panel = new JPanel();
            panel.setLayout(new FlowLayout());
            panel.add(new JLabel("DATA"));
            panel.add(inputfield = new JTextField(6));
            container.add(panel);
    
            // Button
            panel = new JPanel();
            panel.setLayout(new FlowLayout());
            button = new JButton("押す");
            button.addActionListener(listener);
            panel.add(button);
            container.add(panel);
        }
        
  3. イベントリスナーです。
    implements ActionListener で ActionListener を実装します。
    getSource() で Object を取得して button のイベントを判定します。
    inputfield.getText().trim() でデータフィールドからデータを取得してコンソール画面に表示します。
        class inEventListener implements ActionListener
        {   public void actionPerformed(ActionEvent e)
            {   Object source = e.getSource();
                if (source == button)
                {   System.out.println("プッシュされました " + inputfield.getText().trim());
                }
            }
        }
        

超初心者のプログラム入門(Java2)