1

私はチャートを作成していjFreeChartます:

final JFreeChart chart = ChartFactory.createLineChart(
            "Line Chart Demo 1",       // chart title
            "Caf\00E9",                    // domain axis label
            "Voil\00E0",                   // range axis label
            dataset,                   // data
            PlotOrientation.VERTICAL,  // orientation
            true,                      // include legend
            true,                      // tooltips
            false                      // urls
        );

ご覧のとおり、軸のラベルには Unicode 文字があります。「Café」を表示する「Caf\00E9」と「Voilà」を表す「Voil\00E0」です。

このグラフを生成するアプリが「一部の」サーバーで実行されている場合にうまく機能します。その他の場合は、強調文字の代わりに疑問符 ("?") が表示されます。

常に実行されるわけではないため、エンコードを強制するという考えがありました。

問題は、これらの Unicode 文字を読み取り可能な文字に変換するようにラベルを強制するにはどうすればよいかということです。ドキュメントには、これらの文字列を適切に変換する方法が見つかりません。このようなネット上でいくつかのコードを見つけました

domainAxis.setTickLabelFont(new Font("Lucida Sans Unicode", Font.PLAIN, 12));

これは興味深いと思いますが、ドメイン軸と範囲軸のラベルにどのように適用できますか?

よろしく。

EDIT1:

フォントを使用して「強制」する方法を見つけました:

Font font = new Font("Tahoma", Font.PLAIN, 12);
categoryplot.getDomainAxis().setLabelFont(font);

しかし、出力はまだ奇妙です: "Caf\00E9" の場合、"Café" と表示されます。この文字列を読み取り可能なもの (Café) に変換する方法はありますか?

4

1 に答える 1

1

(むしろコメントしたいのですが、この評判制限はまだ私をブロックしています...)

単なるコピー アンド ペーストのタイプミスかもしれませんが、 Unicode が "\u" で始まっていることを確認してください。

さらに、「一部の」(*nix) サーバーでは、独自のリソースからフォントをロードしたい場合があります。

于 2013-04-28T16:26:14.900 に答える