Java-连接多个抽绳';他在荡秋千

Java-连接多个抽绳';他在荡秋千,java,swing,text,join,drawstring,Java,Swing,Text,Join,Drawstring,在Swing中,在面板中,我使用paintComponent使用Graphics2D绘制具有不同坐标的字符串: g2.drawString("one", 0, 0); g2.drawString("two", 50, 50); 有没有办法将多个生成的图形组合成一个抽绳 编辑:我基本上是用unicode字符画一个乐谱,我想画另一个乐谱。我希望能有一种干净的复制方法。不,没有办法。但您希望通过这种组合实现什么呢?更好的表现?一些特定的布局?示例代码 private BufferedImage sa

在Swing中,在面板中,我使用paintComponent使用Graphics2D绘制具有不同坐标的字符串:

g2.drawString("one", 0, 0);
g2.drawString("two", 50, 50);
有没有办法将多个生成的图形组合成一个抽绳


编辑:我基本上是用unicode字符画一个乐谱,我想画另一个乐谱。我希望能有一种干净的复制方法。

不,没有办法。但您希望通过这种组合实现什么呢?更好的表现?一些特定的布局?

示例代码

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);
    }
}
私有缓冲区图像样本//声明为类成员以重用实例
@凌驾
受保护组件(图形g){
如果(sample==null){//延迟初始化,但即使在构造函数中也可以这样做
样本=新的BuffereImage(样本宽度、样本高度、BuffereImage.TYPE_INT_ARGB);
Graphics2D g2d=sample.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0,0,采样宽度,采样高度);
g2d.setColor(Color.BLACK);
g2d.抽绳(“一些文本”,10,10);
g2d.绘制所需的任何内容(……);
}
g、 setColor(getBackground());
g、 fillRect(0,0,getWidth(),getHeight());
//按顺序绘制样本图像三次
对于(int i=0;i<3;i++){
g、 drawImage(样本,0,i*sampleHeight,this);
}
}

谢谢你的回复,但是你能提供更多的信息吗?我基本上用unicode字符画了一个乐谱,我想再画一个乐谱。我希望有一个干净的复制方法。如果你需要你的渲染的任何部分的许多副本,考虑使用<代码> BuffeReimdia<代码>的实例来渲染样本图像,然后在你需要的组件上绘制那个图像。您甚至可以将样本存储在
paintComponent
方法之外,并渲染一次(在初始化时)。UPD。如果这种方法适合您,我将在单独的答案中提供示例代码。是的,这种方法适合我的目标,并且是我以后在项目中需要的。如果你能提供一些示例代码,那就太好了!提前谢谢!