のピクセル単位の幅を計算するために使用される次のコードを検討してくださいString
。
public class ComponentUtils {
static {
Font font = new Font("Verdana", Font.BOLD, 10);
FontMetrics metrics = new FontMetrics(font) {
};
}
public static String calculateWidthInPixels(String value) {
//Using the font metrics class calculate the width in pixels
}
}
font
andmetrics
を 型であると宣言するとstatic
、コンパイラはこれを実行させません。なんでそうなの ?font
and once を初期化し、メソッドmetrics
内の幅を計算するにはどうすればよいですか?calculateWidthInPixels
PS: 次のメイン クラスは常に期待どおりに動作し、幅をピクセル単位で指定します。
public class Main {
public static void main(String[] args) {
Font font = new Font("Verdana", Font.BOLD, 10);
FontMetrics metrics = new FontMetrics(font){
};
Rectangle2D bounds = metrics.getStringBounds("some String", null);
int widthInPixels = (int) bounds.getWidth();
System.out.println("widthInPixels = " + widthInPixels);
}