Я хочу изменить прозрачность JTable, чтобы увидеть, что за ячейками, такими как фотография, это возможно?
Это можно сделать с помощью setOpaque(false) на JTable и TableCellRenderer.Снимок экрана представлен кодом ниже:
setOpaque(false)
JTable
TableCellRenderer
Код:
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); }
Вы можете установить цвет фона, чтобы иметь некоторый альфа-компонент:
Color backgound = new Color(0, 0, 0, 255) //total transparency
Для получения дополнительной информации о том, что вы пытаетесь достичь, опубликуйте SSCCE .
Я попробовал этот ответ:
но это не сработало. Работали следующие:
Color backgound = new Color(0, 0, 0, 0) //total transparency