Java: wie werden container Jscrollpane hintergrund nicht deckend? (dh. transparent)

Dieses Beispiel kompiliert einwandfrei. Und Sie können sehen, laufen die, das problem ich bin vor. Ich will, dass die JPanels zu malen direkt auf dem Desktop, ohne eine sichtbare JWindow content-Bereich. Ich brauche auch ein JScrollpane sichtbar sein, um die Verschiebung durch die JPanel-array horizontal!

Jede Hilfe dankbar.

/*
 * 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();
    }}
InformationsquelleAutor aubreybourke | 2012-07-30
Schreibe einen Kommentar