Imaginary Code

from kougaku-navi.net

ProcessingでAWTのボタンを使う

ProcessingでGUIというとControlP5というライブラリがありますが、お世辞にも使いやすいものではないので、JavaのAWT(Abstract Window Toolkit)のGUIをそのままのっけるのを試してみました。以下は色をランダムに変更するボタンを表示する例です。


import java.awt.*;  // ボタンなどのAWTのGUIの記述に必要
import java.awt.event.*; // AWTのイベントの記述に必要
import java.awt.Font;  // AWTのフォント設定に必要

void setup() {
  size(400, 300); 
  
  setLayout(null);  // 表示位置を座標指定できるようにするためにレイアウトマネージャを無効にする
  Button b1 = new Button("change color");  // ボタンを作る
  b1.setSize(200, 50);      // ボタンのサイズ
  b1.setLocation(10, 15);  // ボタンの表示位置
  b1.addActionListener(new MyActionListener());       // ボタンが押された時に呼ばれるリスナの設定
  b1.setFont( new Font("メイリオ", Font.PLAIN, 30) ); // ボタンのフォント・文字サイズ設定
  add(b1); // ボタンを追加
}

void draw() {
  background(200);  
  strokeWeight(4);
  ellipse( 270, 160, 200, 200 );
}

// ボタンが押された時の挙動を記述するアクションリスナ
class MyActionListener implements ActionListener {
  public void actionPerformed(ActionEvent e) {
    // ボタンを押されたらランダムにフィルカラーを変更
    fill(random(255), random(255), random(255) );
  }
}

あんまりやってると素のJavaで書けよとつっこまれそうですが、ProcessingベースでJavaをやるのが楽しいので。