Java качели таблицы прозрачности - PullRequest
4 голосов
/ 19 марта 2012

Я хочу изменить прозрачность JTable, чтобы увидеть, что за ячейками, такими как фотография, это возможно?

Ответы [ 3 ]

6 голосов
/ 19 марта 2012

Это можно сделать с помощью setOpaque(false) на JTable и TableCellRenderer.Снимок экрана представлен кодом ниже:

enter image description here

Код:

public static void main(String[] args) throws MalformedURLException, IOException{
    final BufferedImage image = ImageIO.read(new URL(
                  "http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png"));

    JFrame frame = new JFrame("Test");

    frame.add(new JTable(18, 5) {{
            setOpaque(false);
            setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {{
                setOpaque(false);
            }});
        }
        @Override
        protected void paintComponent(Graphics g) {
            g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
            super.paintComponent(g);
        }
    });
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}
3 голосов
/ 19 марта 2012

Вы можете установить цвет фона, чтобы иметь некоторый альфа-компонент:

Color backgound = new Color(0, 0, 0, 255) //total transparency

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

1 голос
/ 30 ноября 2014

Я попробовал этот ответ:

Color backgound = new Color(0, 0, 0, 255) //total transparency

но это не сработало. Работали следующие:

Color backgound = new Color(0, 0, 0, 0) //total transparency
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...