gpt4 book ai didi

Java:如何使容器的Jscrollpane背景不透明? (即透明)

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:38 24 4
gpt4 key购买 nike

这个例子编译得很好。你可以通过运行它看到我面临的问题。我希望 JPanel 直接在桌面上绘制,而没有可见的 JWindow 内容 Pane 。我还需要一个可见的 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();
}}

最佳答案

试一试:

    scrollPane.getViewport().setOpaque(false);
scrollPane.setBorder(null);

关于Java:如何使容器的Jscrollpane背景不透明? (即透明),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11717577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com