Javaのprintf()メソッドで書式付きテキストを出力する方法
printf() メソッドを使用すると、java.io.PrintStream や java.io.PrintWriter に対して、書式を指定した整形済みの出力を行うことができます。また、これらのクラスには同じ結果を得られる format() メソッドも用意されているため、この記事で解説する printf() の使い方は、format() メソッドにもそのまま適用できます。
構文
System.out.printf("フォーマット文字列" [, 引数1, 引数2, … ]);
例1:数値の変換と文字列の桁揃え
次の例では、1つの整数値を10進数・8進数・16進数という3つの形式で表示し、さらに文字列を15桁幅の領域に右寄せして出力しています。
import java.io.PrintStream;
public class PrintfTest1 {
public static void main(String[] args) {
int i = 1234;
System.out.printf("Decimal: %1$,d Octal: %1$o Hex: %1$x\n", i);
String str = "Tutorials Point";
System.out.printf("%15s", str);
}
}
実行結果
Decimal: 1,234 Octal: 2322 Hex: 4d2 Tutorials Point
%1$ は「1番目の引数」を明示的に参照することを意味します。続く $d(カンマ区切りの10進数)、%o(8進数)、%x(16進数)により、同じ値を異なる形式で表示しています。また、%15s のように幅を指定すると、文字列は15文字分の領域に右詰めで出力されます。
例2:format()メソッドによる左寄せ出力
次の例では、format() メソッドを使って、文字列を左寄せ・数値を4桁幅で整形して表示しています。
public class PrintfTest2 {
public static void main(String[] args) {
String name = "Adithya";
int age = 30;
System.out.format("%-10s - %4d\n", name, age);
}
}
実行結果
Adithya - 30
%-10s のようにマイナス記号を付けると左寄せになり、%4d は数値を4桁分の幅で表示します。このようにフラグや幅指定を組み合わせることで、表形式のデータなどを見やすく整形することが可能です。
-
JavaのOpenCVライブラリで画像にテキストを追加・描画する方法
putText()メソッドとはJavaでOpenCVライブラリを使用して画像にテキストを追加するには、org.opencv.imgproc.Imgprocクラスが提供するputText()メソッドを利用します。このメソッドを呼び出すと、指定した画像上に任意の文字列を描画できます。putText()メソッドの引数putText()メソッドには、以下のパラメータを渡します。処理対象の画像を格納するMatオブジェクト描画したいテキストを指定するStringオブジェクトテキストの表示位置(左下基準)を指定するPointオブジェクトフォントの種類を指定する整数定数(例:Imgproc.FONT_HERS
-
JavaのJLabelで動くテキスト(スクロール表示)を実装する方法
JLabelとはJLabelはJComponentクラスのサブクラスであり、GUI上にテキストによる説明や情報を表示するための軽量コンポーネントです。JLabelは、1行の読み取り専用テキスト、画像、あるいはその両方を表示することができます。また、PropertyChangeListenerインターフェースを明示的に登録して、プロパティの変更を監視することも可能です。Timerクラスを使った移動テキストの仕組みJLabel内で動くテキスト(スクロール表示)を実装したい場合は、javax.swing.Timerクラスを利用します。Timerクラスのコンストラクタには、更新間隔を表す速度(ミリ秒単