如何在JPanel上使用9补丁图像作为背景?

时间:2013-08-10 12:14:40

标签: java swing jpanel nine-patch

我正在寻找一种方法,使用9-patch文件作为javax.swing.JPanel的背景。 因此,当JPanel的尺寸发生变化时,背景图像会自动调整大小。

有可能吗?或者我必须创建图像的所有部分并在侦听器触发时手动调整其中一些部分(如下面的代码片段)?

public class JPanelWithNinePatchBackground extends JPanel { 
{ 
    /* Define all parts of the background like BufferedImage */

    addComponentListener(new ComponentAdapter() { 
        public void componentResized(ComponentEvent e) { 

            // Resize images . . . 

            JPanelWithBackground.this.repaint(); 
        } 
    });

    /* . . . */

}

1 个答案:

答案 0 :(得分:1)

是的,使用drawImage()实现中的任何一个,您可以指定目标矩形的角。如果源矩形和目标矩形的大小匹配,则该方法将更快完成。 RCTile就是一个例子。