我很确定之前已经问过这个问题,但我的情况略有不同,因为我试图将JLabel置于JLabel作为背景的顶部,我想使用JLabel显示更改的数字并且需要数字显示在背景上,但是我有点摇摆n00b,感谢提前,Jonathan
解决方法:
如果您不需要完全理解您的要求,如果您只需要在背景图像上显示文字,那么最好将标签放在能够绘制背景的自定义面板上.
您可以获得布局管理器的好处而不会出现问题.
如果这看起来令人生畏,JLabel实际上是一种Container,这意味着它实际上可以“包含”其他组件.
例
背景窗格……
public class PaintPane extends JPanel {
private Image background;
public PaintPane(Image image) {
// This is just an example, I'd prefer to use setters/getters
// and would also need to provide alignment options ;)
background = image;
}
@Override
public Dimension getPreferredSize() {
return background == null ? new Dimension(0, 0) : new Dimension(background.getWidth(this), background.getHeight(this));
}
@Override
protected void paintComponent(Graphics g) {
super.paintCo