QRコード生成機能の作成
テキストフィールドのデータ入力を受けて、QRコードを生成する処理をクラスのメソッド「actionPerformed」に作成します。
まず、メソッドの引数「ActionEvent el」のgetSourceメソッドを使用して、イベントが発生したボタンの種類を判別し、「button1」が押されたときにQRコードにデータをセットする処理を実行するようにします。
public void actionPerformed(ActionEvent el) { if(el.getSource() == button1){ if(txt1.getText().isEmpty()){ JOptionPane.showMessageDialog(null, "氏名を入力してください", "警告", JOptionPane.INFORMATION_MESSAGE); }else{ data += txt1.getText() + txt2.getText() + txt3.getText(); //QRコード作成 qrcode.setValue(data); } }
既にBarCodeオブジェクトが作成されている時に、setValueメソッドの引数に新しい値を設定してメソッドを実行すると、それまで作成されていたQRコードの画像が新しいデータのQRコードに自動的に入れ替わります。
QRコードの保存処理
もう1つのボタンbutton2(保存)のイベント処理では、生成したQRコードをPNGフォーマットの画像で保存します。これは、BarCodeクラスのsaveImageメソッドを使用します。オーバーロードメソッドなので、引数にファイル名と画像フォーマットを指定するメソッドを使用することにします。
ファイル名は、「氏名」欄に入力された値を使用し、フォーマットにBarCodeクラスのフィールド「PNG」を指定します。なお、ファイル操作を行えるため、例外処理を組み込む必要があるので注意してください。
ここでは、氏名欄が空白だとファイル名を作成できないので、その場合は簡単なメッセージボックスを表示して注意を促すことと、ファイル作成ができない場合のメッセージ表示を組み込んでいます。
if(el.getSource() == button2){ try{ if(txt1.getText().isEmpty()){ JOptionPane.showMessageDialog(null, "氏名を入力してください", "警告", JOptionPane.INFORMATION_MESSAGE); }else{ fname = txt1.getText() + "PNG"; qrcode.saveImage(fname, BarCode.PNG); } }catch(Exception e){ JOptionPane.showMessageDialog(null, "データを書き込めません", "保存", JOptionPane.INFORMATION_MESSAGE); } } }
これで生成したQRコードを画像ファイルとして使うことができます。後は、この画像を名刺やパンフレットなどに組み込んで印刷すればできあがりです。
まとめ
WebサイトのURL表示などで一般的になってきているQRコードですが、仮名漢字が使えることと多くの文字数が使えるので、今後はさまざまな情報表示のシンボルとして、いろいろな分野で幅広く使われて行くのではないでしょうか。
これだけ多くの情報を小さな図形にまとめることができるQRコードは、アイデア次第でいろいろな活用法が生まれてくると思います。そんな時、このJBarCode 2.5Jはバーコード作成アプリケーションの開発に大きな威力を発揮するコンポーネントだと思います。