自製アプリのクロスプラットフォーム化にあたりOSやディストリビューションによってフォントサイズを変える必要が生じたため、以下のメソッドを作成して対応しました。
UbuntuやLinux Mint以外で”cat /etc/issue”コマンドにてディストリビューション名が分かるかどうかは不明です。
言語仕様とは言え、変数(フォントサイズ)を一々配列に格納するのは面倒です。
// Windows,Macはサイズ8,Ubuntuは7,Linux Mintは10に設定
public static int font_size(){
String OS = System.getProperty("os.name").toLowerCase();
int[] font_sizes = new int[1];
if (OS.contains("linux")){
try{
Process p = Runtime.getRuntime().exec("cat /etc/issue");
try{
p.waitFor();
InputStream is = p.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(is);
Stream<String> streamOfString= new BufferedReader(inputStreamReader).lines();
String str = streamOfString.collect(Collectors.joining());
if (str.contains("Ubuntu")){
int font_size = 7;
font_sizes[0] = font_size;
}else if (str.contains("Mint")){
int font_size = 10;
font_sizes[0] = font_size;
}else{
int font_size = 8;
font_sizes[0] = font_size;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
} else {
int font_size = 8;
font_sizes[0] = font_size;
}
return font_sizes[0];
}