在Swing中是否可以在标签上覆盖按钮?
例如,如果我有一个没有文本只有图像的JLabel,并且我想要将我的按钮覆盖在这个JLabel上。标签的定义类似于:
myLabel = new javax.swing.JLabel(new ImageIcon( myPicture ));
如果不行,有什么想法可以实现这个功能吗?谢谢。
编辑:实际上我读到了关于将JPanel添加到JLabel中的方法,当我添加一个带有按钮布局的面板时,它可以编译通过,但是没有任何可见的东西,只有带有图像的JLabel。
更新:如@paranoid-android建议的那样,我已经解决了我的问题。然而,我仍然需要知道如何自定义覆盖在JLabel上的组件的位置,因为我没有太多控制(可能是因为我通常使用netbeans绘制布局,这需要硬编码)。
类似这样的东西可以工作:
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);
}
JPanel
的宽度和高度(就像您在编辑中所做的那样)。这可能会导致背景看起来非常平庸。另一种选择是使用TexturePaint
,它可以平铺以适应空间,或具有固定大小的框架或图像。由您决定。 :) - rtheunissen