Reputation: 1154
Is there any way to put the JLabel in front of the rectangle? Currently, the JLabel is underneath the rectangle.
Here is my relevant code:
public class MainMenu_South extends JPanel {
MainMenu_BlueJay t;
JLabel start=new JLabel("START");
@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
g2d.drawRect(0, 30, 900, 30);
g2d.fillRect(0, 30, 900, 30);
}
public MainMenu_South(MainMenu_BlueJay t){
setLayout(null);
this.t=t;
setBackground(Color.white);
start.setForeground(Color.red);
start.setFont(new Font("Arial", Font.BOLD, 16));
add(start);
start.setBounds(100, 10, 100, 50);
start.addMouseListener(ml);
}
MouseListener ml=new MouseListener() {
@Override
public void mouseEntered(MouseEvent e) {//hover
start.setForeground(Color.white);
}
@Override
public void mouseExited(MouseEvent e) {
start.setForeground(Color.red);
}
};
}
Upvotes: 0
Views: 1291
Reputation: 109813
for better help sooner post an MCVE
use paintComponent()
for Swing JComponents instead of paint()
there isn't reason to use NullLayout
, use LayoutManager
,
override getPreferredSize
for JPanel
, then JFrame.pack()
will generate expected Dimension
on the screen
JLabel
is transparent, you have to setOpaque
if you to want to dispaly Color
as Backgroung
in Jlabel
you have to use repaint(last code line)
for MouseEvents
and Color
for JLabel
, override MouseAdapter
miss any, no idea if you would need use transparency or tranclucency, or remove the JLabel
Upvotes: 2