1

Swing では、パネルで、paintComponent を使用して、Graphics2D を使用して異なる座標で文字列を描画します。

g2.drawString("one", 0, 0);
g2.drawString("two", 50, 50);

結果の複数の描画を 1 つの drawString に結合する方法はありますか?

編集: 私は基本的に Unicode 文字を使用して譜表を描き、別の譜表を描きたいと思っています。それを複製するきれいな方法があることを望んでいました。

4

2 に答える 2

2

サンプルコード。

private BufferedImage sample; //declare as class member to reuse instance

@Override
protected void paintComponent(Graphics g) {
    if (sample == null) { // lazy initialization, but you could do it even in constructor
        sample = new BufferedImage(sampleWidth, sampleHeight, bufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = sample.createGraphics();
        g2d.setColor(Color.WHITE);
        g2d.fillRect(0, 0, sampleWidth, sampleHeight);
        g2d.setColor(Color.BLACK);
        g2d.drawString("Some text", 10, 10);
        g2d.drawWhateverYouNeed(....);
    }

    g.setColor(getBackground());
    g.fillRect(0, 0, getWidth(), getHeight());
    // draw sample image three times, in sequence
    for (int i = 0; i < 3; i++) { 
        g.drawImage(sample, 0, i * sampleHeight, this);
    }
}
于 2012-02-10T18:55:44.307 に答える
0

いいえ、それを行う方法はありません。しかし、そのような組み合わせで何を達成したいですか?よりよい性能?特定のレイアウト?

于 2012-02-09T23:59:42.933 に答える