05-01 GUI要素とは

GUI(Graphical User Interface)要素は、ユーザーがコンピューターやデバイスと対話するために使用される視覚的なコントロールである。

p5.jsで標準で使えるGUI要素として以下がある。

GUI要素作成方法
ボタンbutton = createButton(‘ラベル’);
button.mousePressed(関数);
入力ボックスinput = createInput();
ラベルlabel = createP(‘ラベル’);
ラジオボタンradio = createRadio();
radio.option(‘ラベル’);
チェックボックスcheck = createCheckbox(‘ラベル’);
スライダーslider = createSlider(最小値,最大値,初期値);
セレクトメニュー
(ドロップダウンリスト)
dropdown = createSelect();
dropdown.option(‘ラベル’);
dropdown.changed(関数);

createXXXコンストラクタでGUI要素を作成する。GUI要素の配置位置とサイズはpositionメソッドとサイズメソッドで設定する。たとえば入力ボックスは以下のように作成する。

input = createInput();
  input.position(x座標, y座標);
  input.size(横幅);

ボタンをクリックしたときの処理を行う関数は以下のように設定する。

button = createButton('処理');
button.mousePressed(関数); 

例題 5-1-1

2つの入力ボックスに入力された数値を、ボタンのクリックで、加算してラベルに表示する。

コード

let input1, input2, button, result;

function setup() {
  noCanvas(); // キャンバスは不要

  input1 = createInput();
  input1.position(20, 65);
  input1.size(50);

  let plus = createP('+');
  plus.position(80, 50);

  input2 = createInput();
  input2.position(100, 65);
  input2.size(50);

  button = createButton('=');
  button.position(160, 65);
  button.mousePressed(calculate); // ボタンが押されたときの関数を設定

  result = createP('');
  result.position(200, 50);
}

function calculate() {
  let n1 = parseInt(input1.value());
  let n2 = parseInt(input2.value());
  let s = n1 + n2;
  result.html(s);
}

練習問題5-1-1

名前と年齢を入力し、未成年か成年か判定して表示しなさい。

練習問題5-1-2

ラジオボタンを使って選択された果物を表示するプログラムを作成しなさい。果物の種類は「りんご」「みかん」「バナナ」の3つとします。

練習問題5-1-3

年齢をスライダーで選択し、年齢に応じてメッセージを表示するプログラムを作成しなさい。たとえば、年齢が10歳未満なら「子ども」、10歳から18歳未満なら「未成年」、18歳以上なら「大人」と表示します。

練習問題5-1-4

セレクトメニュー(ドロップダウンリスト)を使って、ユーザーに好きな色を選ばせ、その色で背景色が変わるプログラムを作成しなさい。

練習問題5-1-5

チェックボックスを使用して、いくつかの趣味を選び、それをまとめて表示するプログラムを作成しなさい。趣味の選択肢は「読書」「音楽」「スポーツ」にします。