2

我正在寻找一种使用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(); 
        } 
    });

    /* . . . */

}
4

1 回答 1

1

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

于 2013-08-10T12:28:24.350 回答