Java:使不透明度仅适用于JPanel而不是组件

时间:2014-08-19 13:49:56

标签: java swing

我有一个名为' Main'我设法使透明。问题是,我只想让面板本身透明,我希望其中的组件可见。

这段代码是我的Panel;

JPanel window=new JPanel();
static JTextArea dialog=new JTextArea(14,35);
JTextField input=new JTextField(35);
JScrollPane scroll=new JScrollPane(
    dialog,
    JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
);

public Main() {
    super("Test");
    setSize(400,270);
    setResizable(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    dialog.setEditable(false);
    dialog.setFocusable(false);
    dialog.setOpaque(false);
    scroll.setOpaque(false);
    scroll.getViewport().setOpaque(false);
    input.setOpaque(false);

    input.addKeyListener(this);     
    window.add(scroll);
    window.add(input);

    this.setUndecorated(true);
    this.setAlwaysOnTop(true);
    window.setBackground(new Color(255,200,0));

    add(window);
    setVisible(true);
}

现在,在实际创建窗口时,我使用了这个;

Main Main = new Main();
Main.setOpacity(0.75f);

它确实能够使面板及其所有组件透明化。 但是,我只希望面板变得透明。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试将窗口的背景颜色设置为此。

new Color(255,200,0,0);

最后一个0设置了alpha - 我相信0应该使它透明。