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

标签 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(); 
        } 
    });

    /* . . . */

}

最佳答案

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

关于java - 如何在 JPanel 上使用 9 补丁图像作为背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18161768/

相关文章:

java - 在 Java Swing 游戏循环中正确使用 SwingWorker

java - JScrollPane 内容不显示

Java 8 如何使用流对列表列表中的每个元素求和?

java - String.format 不允许 int

java - Spring Boot 无法解析 yaml 中 spring.profiles.active 属性的属性占位符

Java clipboardOwner 目的?

java - 当单元格内的 JComboBox 中有 ItemEvent 时,如何获取 CellRow

java - 行选择不随 JTable 中的行移动而移动

java - 打印一个带有可滚动 Jtable 的 JPanel

java - Java中让JPanel填满GridBagLayout中的整个空间