1

我有一个 JSplitPane。我想将背景图像添加到 JSplitPane 的左侧。

mySplitPane.getLeftComponent 

这将返回左侧组件。然后我想在左侧添加图像背景。我想我可以使用Paint() 将背景图像设置为 JSplitPane。但我怎样才能在唯一的左侧组件上进行设置。

我的 JSplitPane 左侧有一个 JTable。我想让 JTable 透明。然后显示背景图像。

现在我已经为我的 JTable 设置了背景。我不希望使用 JTable Scroll 滚动背景。这就是为什么我想将背景图像添加到拆分窗格而不是表格。

4

1 回答 1

4

这可能是你要找的吗?

class ImagePanel extends JPanel {
    private Image image;
    public ImagePanel(Image image) {
        this.image = image;
    }
    @Override
    protected void paintComponent(Graphics g) {
       g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
    }
}

用法:

BufferedImage myImage = ImageIO.load(...);
JPanel leftPanel = new ImagePanel(myImage);

//Add panel to splitpanel
JSplitPane mySplitPane= new JSplitPane(JSplitPane.HORIZONTAL_SPLIT)
mySplitPane.setLeftComponent(leftPanel);

上面我创建了一个 JComponent 的子类。覆盖paintComponent(Graphics g) 方法来绘制我想要显示的图像。然后我设置 JPanel 的内容窗格,然后最后将面板传递到拆分窗格的左侧

有关水印背景的更多信息,请参阅此处的示例和代码示例。已编辑

于 2012-04-19T12:22:30.417 回答