java按钮被覆盖,在Java Swing中将JButton覆盖在JLabel之上吗?

Is it possible to overlay a Button over a Label in Swing?

For example, if have a JLabel with image and no text, and i want to overlay my button over this JLabel. Label is defined something like:

myLabel = new javax.swing.JLabel(new ImageIcon( myPicture ));

If not, then any ideas how can i realize this, thank you.

EDIT: Actually i read about adding JPanel to a JLabel, when i add a Panel with button layout, it compiles fine but nothing is visible, just the JLabel with image

UPDATE: As suggested by @paranoid-android, somehow i have solved my problem. However i still have to know how can i customize the positions of components overlayed on top of JLabel as i don't have much control (probably because normally i use netbeans for drawing layouts, and this would require hard coding).

Something Like this worked:

ImagePanel(Image image, int id) {

this.image = image;

this.tile = false;

JButton backButton = new JButton();

JButton nextButton = new JButton();

backButton.setText(" BACK ");

nextButton.setText(" NEXT ");

add(backButton);

add(nextButton);

};

@Override

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(image, 0, 0, getWidth(), getHeight(), this);

}

解决方案

You can do it using a JLayeredPane, although if I understand correctly, the absolute best way to do that would be to override paintComponent:

// as part of your JPanel

@Override

public void paintComponent(Graphics g){

super.paintComponent(g);

g.drawImage(background, 0, 0, this);

}

Then you can add components to the panel as you like, without the need for the JLabel.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值