看下面这段代码:
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方法用于设置文字相对于图片的位置。
上面的各个方法,还得自己试验一下才能知道具体是有什么作用的。我是捣鼓了四五个小时,才把这个弄明白的。