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方法用于设置文字相对于图片的位置。

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

  • 14
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java,可以使用JLabel和ImageIcon组合来实现在JFrame面板插入背景图片显示组件的效果。具体步骤如下: 1. 创建一个JLabel对象,并将其设置为透明。 2. 创建一个ImageIcon对象,将背景图片加载到该对象。 3. 将ImageIcon对象设置为JLabel的图标。 4. 将JLabel添加到JFrame面板,并将其设置为JFrame面板的布局管理器的背景。 5. 向JLabel添加其他组件,如按钮、文本框等。 下面是一个简单的示例代码: ``` import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Image; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class BackgroundImageExample extends JFrame { private static final long serialVersionUID = 1L; public BackgroundImageExample() { setTitle("Background Image Example"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500, 500); // 创建一个JLabel对象,并将其设置为透明 JLabel background = new JLabel(); background.setOpaque(false); // 创建一个ImageIcon对象,将背景图片加载到该对象 ImageIcon backgroundImage = new ImageIcon("background.jpg"); Image image = backgroundImage.getImage().getScaledInstance(getWidth(), getHeight(), Image.SCALE_SMOOTH); backgroundImage = new ImageIcon(image); // 将ImageIcon对象设置为JLabel的图标 background.setIcon(backgroundImage); // 创建一个JPanel对象,并将其设置为JFrame的内容面板 JPanel contentPane = new JPanel(); contentPane.setLayout(new BorderLayout()); setContentPane(contentPane); // 将JLabel添加到JFrame面板,并将其设置为JFrame面板的布局管理器的背景 contentPane.add(background, BorderLayout.CENTER); // 向JLabel添加其他组件,如按钮、文本框等 JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); JButton button1 = new JButton("Button 1"); JButton button2 = new JButton("Button 2"); buttonPanel.add(button1); buttonPanel.add(button2); background.setLayout(new BorderLayout()); background.add(buttonPanel, BorderLayout.SOUTH); // 设置JFrame居显示 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((screenSize.width - getWidth()) / 2, (screenSize.height - getHeight()) / 2); } public static void main(String[] args) { BackgroundImageExample example = new BackgroundImageExample(); example.setVisible(true); } } ``` 在上面的代码,我们创建了一个JLabel对象background,并将其设置为透明。然后创建了一个ImageIcon对象backgroundImage,将背景图片加载到该对象,并将其设置为JLabel的图标。接着将JLabel添加到JFrame面板,并将其设置为JFrame面板的布局管理器的背景。最后向JLabel添加了一个按钮面板,并将其添加到JLabel的底部。 需要注意的是,这里使用了getScaledInstance方法对图片进行了缩放,以适应JFrame的大小。另外,为了使JFrame居显示,我们使用了Toolkit类获取屏幕大小,并将JFrame的位置设置为居

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值