JPanel内容 - JButton和JLabel背景无法正常运行

时间:2016-05-06 05:43:27

标签: java jpanel jlabel transparent

我创建了一个如下所示的用户界面:

panel

http://imgur.com/3gPJ6v0

+你可以忽略背景图片。 问题是2 JLabel有白色背景。我已经工作了一段时间,使用标签上的setOpaque()为false,面板也是如此,编辑setBackground()等等。我的目标是让JLabel背后的背景是黑色和半透明。有什么建议?

使用此代码的想法是,无论何时创建UserInterface()对象,startScreen()都可以创建JPanel并将其返回到构造函数,并将其应用于JFrame。 - 请记住,这门课程并不完整,是大型课程的一部分。

import javax.swing.*;
import java.awt.*;

public class UserInterface extends JFrame{

private final int WINDOW_WIDTH = 1250;
private final int WINDOW_HEIGHT = 750;

public UserInterface(){
    super("idk");
    setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setLocationRelativeTo(null);
    add(startScreen());
    setVisible(true);
}//UserInterface

/*
public JPanel gameScreen(){

}//gameScreen
*/

public JPanel startScreen(){

    JPanel backgroundPanel;
    backgroundPanel = new JPanel(null);//using absolute positioning
    //backgroundPanel.setBackground(new Color(15, 15, 15));
    backgroundPanel.setOpaque(false);

    JLabel title;
    title = new JLabel("idk");
    title.setOpaque(false);
    //title.repaint();
    title.setBackground(new Color(15, 15, 15));
    title.setFont(new Font("Consolas", Font.PLAIN, 250));
    title.setHorizontalAlignment(SwingConstants.CENTER);
    title.setVerticalAlignment(SwingConstants.TOP);
    title.setBounds(WINDOW_WIDTH / 4, WINDOW_HEIGHT / 20, (WINDOW_WIDTH / 4) * 2, WINDOW_WIDTH / 5);

    JLabel trademark;
    trademark = new JLabel("Eric Parsons");
    trademark.setFont(new Font("Edwardian Script ITC", Font.PLAIN, 60));
    trademark.setBounds(10, (WINDOW_HEIGHT / 20) * 17, 280, 80);

    JButton begin;
    int beginSizeX = 350;
    int beginSizeY = 50;
    begin = new JButton("Begin");
    begin.setBounds((WINDOW_WIDTH / 2) - (beginSizeX / 2),
            (WINDOW_HEIGHT / 2) - (beginSizeY / 2), beginSizeX, beginSizeY);
    begin.setBackground(new Color(160, 160, 160));
    begin.setFont(new Font("Consolas", Font.PLAIN, 25));
    begin.setFocusable(false);

    backgroundPanel.add(title);
    backgroundPanel.add(begin);
    backgroundPanel.add(trademark);

    titlePageBackground.ScrollingBackground background = new titlePageBackground.ScrollingBackground();
    background.setFocusable(true);
    backgroundPanel.add(background);
    return backgroundPanel;

}//startScreen
}//UserInterface

我觉得问题是我添加对象的顺序,但我不知道我哪里出错了。我感谢所有的评论和帮助!

__ 更新:更改setOpaquq()对面板和标签

都没有帮助

0 个答案:

没有答案