JSplitPane Фоновое изображение на правой стороне компонента

У меня есть JSplitPane. Я хочу добавить фоновое изображение в левой части JSplitPane.

mySplitPane.getLeftComponent 

это возвращает компонент левой стороны. а затем я хочу добавить фоновое изображение на левой стороне. я думаю, что могу использовать Paint() установить фоновое изображение для JSplitPane. но как я могу установить только на левой стороне компонента.

У меня есть JTable на левой стороне моего JSplitPane. Я хочу, чтобы JTable был прозрачным. а затем показывает фоновое изображение.

Прямо сейчас я установил фон для моего JTable. Я не хочу, чтобы фон прокручивался с помощью JTable Scroll. Вот почему я хочу добавить фоновое изображение в панель разделения, а не в таблицу.

1 ответ

Решение

Может ли это быть то, что вы ищете?

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 и, наконец, перехожу на панель слева от разделенной панели.

Для получения дополнительной информации о фоне водяных знаков см. Здесь примеры и примеры кода. отредактированный

Другие вопросы по тегам