java容器怎么设置透明_Java:如何使容器的Jscrollpane背景不透明? (即透明)

这个例子编译得很好.你可以从运行它看到我面临的问题.我希望JPanels直接在桌面上绘制,而没有可见的JWindow内容窗格.我还需要一个JScrollpane才能看到,以便横向移动JPanel数组!

感谢任何帮助.

/*

* 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();

}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值