Este ejemplo compila bien. Y se puede ver al ejecutarlo, el problema que estoy enfrentando. Quiero que los JPanels pinten directamente en el escritorio, sin un panel de contenido de JWindow visible. ¡También necesito un JScrollpane para ser visible para poder desplazar horizontalmente la matriz de JPanel!Java: ¿cómo hacer que el fondo Jscrollpane del contenedor no sea opaco? (es decir, transparente)
Agradecer cualquier ayuda.
/*
* SSCE.java
* Short Self Contained Example
*
* Problem: Cant make the containers scrollpane non-opaque! (ie. transparent)
*/
package fb;
import com.sun.awt.AWTUtilities;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JWindow;
import javax.swing.ScrollPaneConstants;
/**
*
* @author Aubrey
*/
public class SSCE {
JWindow w = new JWindow();
Container c = w.getContentPane();
JPanel[] ps;
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension dim = toolkit.getScreenSize();
int width = dim.width;
int height= dim.height;
public SSCE(){
c.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 5));
JScrollPane scrollPane = new JScrollPane(c);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setOpaque(false);
ps = new JPanel[19];
for(int i=0; i<19; i++){
ps[i]=new JPanel();
ps[i].setLocation(0, 0);
ps[i].setSize(400, 400);
ps[i].setVisible(true);
JEditorPane area = new JEditorPane();
area.setEditable(false);
area.setOpaque(false);
area.setSize(400, 400);
area.setForeground(Color.WHITE);
area.setText("Date: \nFrom: \n\nMessage: "+i);
ps[i].add(area);
ps[i].setBorder(BorderFactory.createLineBorder(Color.GRAY));
ps[i].setBackground(Color.darkGray);
c.add(ps[i]);
}
if (AWTUtilities.isTranslucencySupported(AWTUtilities.Translucency.TRANSLUCENT)) {
System.out.println("TranslucencySupported !!!!");
AWTUtilities.setWindowOpaque(w, false);
}else{System.out.println("Translucency NOT Supported !!!!");}
//Problem seems to be here --> either the scrollPane or the Container is not non-opaque (ie. transparent)! HOW TO FIX THIS??
w.setContentPane(scrollPane);
w.setLocation(0,height-490);
w.setSize(width, 450);
w.setVisible(true);
}
public static void main(String[] args){
new SSCE();
}}
+1 para [sscce] (http://sscce.org/). – trashgod