我创建了一个如下所示的用户界面:
+你可以忽略背景图片。 问题是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()对面板和标签
都没有帮助