设置面板背景

部署运行你感兴趣的模型镜像
设置面板的背景,添加的控件不会被覆盖,主要用到JPanel的

paintComponent方法画背景。并且把setOpaque方法设置成false,可以画出背景上的控件
package pic;

import java.awt.Graphics;
import java.awt.Image;
<img src="https://img-blog.youkuaiyun.com/20151119210028127?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 
 * 有图片的背景添加按钮之后,按钮不被覆盖
 * 
 * @author Eiffel
 * 
 */
public class Picture extends JFrame {

	JButton bt = null;
	ImageIcon btimgIcon = null;
	//JLabel jl = new JLabel("你好");

	public Picture() {

		btimgIcon = new ImageIcon("images/denglu.gif");
		bt = new JButton(btimgIcon);
		bt.setContentAreaFilled(false); //按钮透明,只显示按钮的图片

		MyPanel mp = new MyPanel();
		// mp.setOpaque(true);
		mp.setImage(new ImageIcon("images/1.jpg").getImage());

		mp.add(bt);
		//mp.add(jl);
		this.add(mp);
		this.setVisible(true);
		this.setBounds(500, 200, 300, 300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	public static void main(String args[]) {
		new Picture();
	}

	class MyPanel extends JPanel {

		Image img = null;

		public MyPanel() {

			setOpaque(false);

			// this.add(bt);
		}

		public void setImage(Image image) {
			this.img = image;
		}

		protected void paintComponent(Graphics g) {
			if (img != null) {// 如果图片已经初始化
				// 画出图片
				g.drawImage(img, 0, 0,300,300, null);
			}
			super.paintComponent(g);
		}
	}
}

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在 Java 中,不同的窗口面板组件修改背景颜色的方法有所不同,以下为常见情况: ### 对于 `JFrame` `JFrame` 不能直接使用 `setBackground` 方法来设置背景颜色,通常是通过获取其内容面板(`ContentPane`),然后对内容面板设置背景颜色。示例代码如下: ```java import javax.swing.JFrame; import java.awt.Color; public class JFrameBackgroundColorExample { public static void main(String[] args) { JFrame frame = new JFrame("JFrame Background Color"); // 获取内容面板 frame.getContentPane().setBackground(Color.RED); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ### 对于 `JPanel` `JPanel` 可以直接使用 `setBackground` 方法设置背景颜色。示例代码如下: ```java import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Color; public class JPanelBackgroundColorExample { public static void main(String[] args) { JFrame frame = new JFrame("JPanel Background Color"); JPanel panel = new JPanel(); // 设置面板背景颜色 panel.setBackground(Color.GREEN); frame.add(panel); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ### 对于 `AWT` 的 `Frame` `AWT` 的 `Frame` 可以直接使用 `setBackground` 方法设置背景颜色。示例代码如下: ```java import java.awt.Color; import java.awt.Frame; public class AWTFrameBackgroundColorExample { public static void main(String[] args) { Frame frame = new Frame("AWT Frame Background Color"); // 直接设置背景颜色 frame.setBackground(Color.BLUE); frame.setSize(300, 200); frame.setVisible(true); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值