トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Java
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ GUI


  POINT
    Java では GUI の構成要素を Component という
    javax.swing.JComponent を継承する

___

■ Window

ウィンドウをつくるには JFrame を作成して表示する。 JFrame も GUI コンポーネントのひとつ。
    import javax.swing.*;
    import java.awt.*;


  public static void main() {
    // フレーム( ウィンドウ )を作成。
    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    
    // 大きさの設定
    f.setSize( 300, 300 );

    // 位置の設定
    f.setLocation( 100, 100 );

    // 表示する。
    f.setVisible( true );
  }
メインスレッドを止めても, GUI の操作は受け付けるらしい。
    // 表示する。
    f.setVisible( true );

    // 無限ループ
    while ( true ) {
      System.out.print(".");
    }
___

■ ボタン(Button)

すべての GUI コンポーネントはフレームに追加することで、配置される。
    JFrame f = new JFrame();

    JButton b = new JButton( "click me" );
    f.getContentPane().add( BorderLayout.EAST, b );  
ボタンのコールバックを受け取るにはリスナーを追加する。 リスナーに登録するには ActionListener を実装する。
    
    class MyListener implements ActionListener {

      public void actionPerformed( ActionEvent e ) {
        System.out.println( "button clicked" );
      }
    }



ボタンオブジェクトに対してリスナー( コールバック )を登録する。
    b.addActionListener( new MyListener() );
___

■ グラフィック(Graphic.Swing)

グラフィックを描画するには JFrame.paint(Graphics g) メソッドをオーバーライドする。 Graphics は描画のためのメソッドと共にグラフィックスのステートをもつ。

    class MyFrame extends JFrame {

      public void paint(Graphics g){
        super.paint( g );

        // カラーステートを青に変更
        g.setColor(Color.BLUE);
        g.drawRect(10,60,280,180);

        // 位置 と 大きさ を指定
        fillRect( int x, int y, int width, int height );

        g.fillOval(100,100,100,100);

        // テキストを描く
        g.drawString("Swing Test", 10, 50);
      }

      MyFrame() {
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setSize( 300, 300 );
        setVisible( true );    
      }

      public static void main() {

        JFrame f = new MyFrame();

      }
    }
ボタンを押したら色を変更するためにボタンのリスナーになる。
    class MyFrame extends JFrame implements ActionListener {

      int flag = 0;

      public void actionPerformed( ActionEvent e ) {
        flag ++;

        // 画面を更新するには再描画を要求する。
        repaint();
      }

    }
ボタンの種類を判別するには, ActionEvent.getActionCommand() を利用する。 ラベルの文字列が返ってくるので判別できる。
      if ( e.getActionCommand() == "click me" ) {
        System.out.println( "button clicked  go" );
      }
      else {
        System.out.println( "NOT button clicked  stop" );
      }
___

■ 画像を表示する


  public void paint(Graphics g){
    super.paint( g );
    Image i = new ImageIcon( "d:/test.jpg" ).getImage();
    g.drawImage( i, 0, 0, this );
  }


















NINJAIDX 4