通过JButton(文本,图片),但是他们两个是平行排列的,但是我想要文本覆盖在图片的正上方,而且我要调用文本的值,所以不能把他们两个做成一个图片,不知道怎么解决哦!麻烦大家帮帮忙!

解决方案 »

  1.   

    恐怕要自己派生一个jlabel,然后模拟jbutton的边界画法
      

  2.   

    简单写了一个,供你参考,构造函数里面参数是button里面的文本和图片的路径,你可以试试
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Dimension;
    import java.awt.Image;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;public class MyButton extends JButton{

    private String buttonText;
    private Image img = null;
    private int picWidth; 
    private int picHeight;

    public MyButton(String buttonText, String picFileName) {
    this.buttonText = buttonText;
    ImageIcon imageIcon = new ImageIcon(getClass().getResource(picFileName));
    img = imageIcon.getImage();
    picWidth = imageIcon.getIconWidth();
    picHeight = imageIcon.getIconHeight();
    this.setPreferredSize(new Dimension(picWidth+40, picHeight+20));
    }

    public void paint(Graphics g) {
    super.paint(g);
    int picX = this.getWidth()/2 - picWidth/2;
    int picY = this.getHeight()/2 - picHeight/2;
    g.drawImage(img, picX, picY, picWidth, picHeight, this);
    g.setColor(Color.BLACK);
    g.drawString(buttonText, picX, picY+10);
    }}