0

グラフのグリッドでハッシュマークにラベルを付けたいのですが、フォント サイズ 1 を使用すると、大きすぎます。フォントサイズを 1 より小さくする方法はありますか? コーディング方法に何か不足していますか?

グリッドを生成し、ハッシュにラベルを付けようとするコードは次のとおりです。

     for (double k = myStart1; k <= myEnd1; k = k + (myEnd1 - myStart1) / 8) {
    g2.setColor(Color.BLACK);
        g2.draw(new Line2D.Double(k, (max - min) / 60, k, -(max - min) / 60));
        String labelx=String.valueOf(k);
        Float xCo=Float.parseFloat(Double.toString(k));
        g2.setFont(new Font("SansSerif",Font.PLAIN,1));
        g2.drawString(labelx, xCo, 0);
    }

これは、x^2 によって生成されたグラフのスクリーンショットです。ここに画像の説明を入力

4

1 に答える 1

5

すでにお気付きだと思いますが、Font コンストラクターはintパラメーターにを使用します。つまり、0 から 1sizeの間のフォントを (少なくともこのメソッドを使用して) 効果的に作成することは不可能です。size

しかし、私は特に興味深いクラスのderiveFontメソッドを見つけました:Font

public Font 派生フォント(フロートサイズ)

現在の Font オブジェクトを複製し、それに新しいサイズを適用して、新しい Font オブジェクトを作成します。

パラメータ: size - 新しいフォントのサイズ。

deriveFont指定されたサイズで新しい Font を構築すると主張するメソッドは、パラメーターとして a を受け取りますfloat。したがって、次のようなことが可能になる場合があります。

Font theFont = new Font("SansSerif",Font.PLAIN,1);
theFont = theFont.deriveFont(0.5);
g2.setFont(theFont);

サイズが 0.5 のフォントになります。

今、私はこれを自分でテストしていません.Graphicsプログラムのセットアップには時間がかかるので、あなたは私よりもそれを試すのに適した立場にあります. しかし、可能性としてそれをそこに投げ出すだけです。

于 2012-11-28T05:27:09.870 に答える