05-03 チェックボックス

チェックボックスは複数の項目にチェックを入れるものである。

  チェックボックスはは以下のように作成する。trueを指定した項目はチェックが入る。項目がチェックされているかはcheckbox1.checked()で調べることができる。チェックボックスのラベルを取得するメソッドはない。

checkbox1 = createCheckbox('春', false);
checkbox1.position(20, 20);
checkbox2 = createCheckbox('夏', true);
checkbox2.position(20, 40);

例題 5-3-1

春、夏、秋、冬のチェックボックスから選択されている内容を表示する。チェックの判定をコンパクトにするためにcheckboxを配列とする。

コード

const checkbox = [null, null, null, null]; 
let seasons = ['春', '夏', '秋', '冬'];
let result;

function setup() {
  createCanvas(400, 200);

  checkbox[0] = createCheckbox('春', false);
  checkbox[0].position(20, 20);

  checkbox[1] = createCheckbox('夏', false);
  checkbox[1].position(20, 40);

  checkbox[2] = createCheckbox('秋', false);
  checkbox[2].position(20, 60);

  checkbox[3] = createCheckbox('冬', false);
  checkbox[3].position(20, 80);

  let button = createButton('表示');
  button.position(20, 120);
  button.mousePressed(showSelectedSeasons);

  result = createP('');
  result.position(20, 150);
}

function draw() {
  background(220);
}

function showSelectedSeasons() {
  sel = '';
  for (let i = 0; i < checkbox.length; i++) {
    if (checkbox[i].checked())
      sel += seasons[i];   
  }
  result.html(sel);
}

練習問題5-3-1

 以下のように配置しなさい。

練習問題5-3-2

選択された季節の数を表示

現在のプログラムに少し変更を加え、選択された季節の数も表示するようにします。選択した季節の名前と一緒に、いくつ選ばれているかもresultに表示しましょう。

練習問題5-3-3

選択された季節に応じてメッセージを表示

各季節の選択によって異なるメッセージが表示されるようにします。たとえば、「春」が選択されていれば「暖かくなってきましたね!」などと表示するようにします。複数の季節が選択されている場合は、それぞれのメッセージをまとめて表示します。

練習問題5-3-4

選択した季節を順に並べて表示

「春」「秋」のように選択された順序に関係なく表示するのではなく、選択された順番通りに季節を表示するようにプログラムを変更してみましょう。この問題はイベント処理の順序を学ぶ良い練習にもなります。

練習問題5-3-5

選択数の上限を設定

最大で2つまでしか選べないようにします。もし3つ目の季節を選ぼうとすると、「2つまでしか選べません」というエラーメッセージが表示されるようにしましょう。このように制限を設けることで、条件分岐の練習ができます。

練習問題5-3-6

動的にチェックボックスを追加・削除する

最後の応用問題として、チェックボックスを動的に追加・削除できるようにします。ボタンを使ってチェックボックスを追加したり、削除したりする処理を実装することで、配列操作やDOM要素の動的生成について学びます。