java中设置JButton的背景图片,并在它上面显示文字

看下面这段代码:

JPanel contentPanel = new JPanel();
	contentPanel.setBackground(Color.BLACK);
	setContentPane(contentPanel);
	ImageIcon icon = new ImageIcon("C:\Users\lenovo\Desktop\button.jpg");

	JButton enter = new JButton("This is a button", icon);

        enter.setBounds(900, 380, 380, 270);
        enter.setHorizontalTextPosition(SwingConstants.CENTER);
<span style="white-space: pre;">	</span>enter.setVerticalTextPosition(SwingConstants.CENTER);
enter.setOpaque(false);//设置控件是否透明,true为不透明,false为透明
        enter.setContentAreaFilled(false);//设置图片填满按钮所在的区域
        enter.setMargin(new Insets(0, 0, 0, 0));//设置按钮边框和标签文字之间的距离
        enter.setFocusPainted(false);//设置这个按钮是不是获得焦点
        enter.setBorderPainted(false);//设置是否绘制边框
        enter.setBorder(null);//设置边框
	
        contentPanel.add(enter);

也可以通过重写JButton来实现,具体方法在http://www.zhouwenze.com/archives/20110414-317.html

其中的setHorizontalTextPosition方法和setVerticalTextPosition方法用于设置文字相对于图片的位置。

上面的各个方法,还得自己试验一下才能知道具体是有什么作用的。我是捣鼓了四五个小时,才把这个弄明白的。

经验分享 程序员 微信小程序 职场和发展