Dieses Beispiel kompiliert fein. Und Sie können sehen, von dem es läuft, das Problem, dem ich gegenüberstehe. Ich möchte die JPanels direkt auf dem Desktop malen, ohne einen sichtbaren JWindow Inhaltsbereich. Ich brauche auch eine JScrollpane, um sichtbar zu sein, um horizontal durch das JPanel-Array zu schalten!Java: Wie mache ich den Jscrollpane-Hintergrund des Containers undurchsichtig? (dh. transparent)
Schätzen Sie jede Hilfe.
/*
* 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 für [sscce] (http://sscce.org/). – trashgod