精华内容
下载资源
问答
  • Swing如何给窗体添加背景图片

    千次阅读 2018-01-20 20:02:58
    下面两个类用来给窗体添加背景图片,第一个类构造方法参数是你需要放置的顶层面板,第二个类继承了可以直接获取容器 package util; import java.awt.event.ComponentAdapter; import java.awt.event.Component...

    下面两个类用来给窗体添加背景图片,第一个类构造方法参数是你需要放置的顶层面板,第二个类继承了可以直接获取容器

    package util;
    
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    
    import javax.swing.JLayeredPane;
    import javax.swing.JPanel;
    import javax.swing.JSplitPane;
    
    /**
     * 背景面板 
     * @author 高明
     *
     */
    public class LayeredPanel extends JLayeredPane {
    	/**
    	 * 构造方法
    	 * @param str --图片路径
    	 * @param panel  --组件面板
    	 */
    	public LayeredPanel(String str,JPanel panel) {
    		
    		BackGround b = new BackGround(str);
    		add(b, new Integer(0)); // 添加背景,层数为0
    		panel.setOpaque(false); // 将panel设为透明状态
    		add(panel, new Integer(1)); // 将panel设为0层
    
    		addComponentListener(new ComponentAdapter() {
    			public void componentResized(ComponentEvent e) {
    				b.setSize(getWidth(), getHeight());
    				panel.setSize(getWidth(), getHeight());
    			}
    		});
    	}
    	public LayeredPanel(String str,JSplitPane panel) {
    		
    		BackGround b = new BackGround(str);
    		add(b, new Integer(0)); // 添加背景,层数为0
    		panel.setOpaque(false); // 将panel设为透明状态
    		add(panel, new Integer(1)); // 将panel设为0层
    
    		addComponentListener(new ComponentAdapter() {
    			public void componentResized(ComponentEvent e) {
    				b.setSize(getWidth(), getHeight());
    				panel.setSize(getWidth(), getHeight());
    			}
    		});
    	}
    }
    package util;
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    import javax.swing.JFrame;
    import javax.swing.JLayeredPane;
    /**
     * 带背景的窗体
     * @author 高明
     *
     */
    public class LayeredFrame extends JFrame {
     public LayeredFrame() {
      setBounds(300, 200, 600, 400);
      add(new JLayeredPane());
      BackGround b = new BackGround();
      getLayeredPane().add(b);
      
      addComponentListener(new ComponentAdapter() {
       @Override
       public void componentResized(ComponentEvent e) {
        b.setSize(getWidth(),getHeight());
       }
      });
     }
    }
    
    

    在参考了以下两篇文章才学会这个类的写法,非常感谢他们的帮助

    http://blog.csdn.net/gaowen_han/article/details/8164720
    https://www.cnblogs.com/gwq369/p/5327800.html

     

    

    展开全文
  • Netbeans的UI如何通过图形化界面去给窗体添加背景图片? Netbeans的UI如何通过图形化界面去给窗体添加背景图片? Netbeans的UI如何通过图形化界面去给窗体添加背景图片
  • vc++如何给窗体添加背景图片

    千次阅读 2014-03-11 14:57:20
    那么能否主框架窗口背景改变一下色彩或是主框架窗口加上一幅漂亮的图片背景?其实也不难。但与单文档窗口应用程序中改变框架窗口背景方法不同,对多文档窗口应用程序中的主框架窗口改变背景不能简单地用...

    VC是一个功能强大的可视化开发工具,但是用VC做的标准界面与Windows一样色彩灰暗单调,例如多文档窗口应用程序中的主框架窗口的背景便是如此。那么能否给主框架窗口的背景改变一下色彩或是给主框架窗口加上一幅漂亮的图片做背景?其实也不难。但与单文档窗口应用程序中改变框架窗口的背景方法不同,对多文档窗口应用程序中的主框架窗口改变背景不能简单地用ClassWizard重载OnEraseBkgnd(CDC pDC)函数的方法实现。因为多文档窗口应用程序中的主框架窗口的背景区是一个MDIClient类的窗口,因此改变背景与这个MDIClient类的窗口有关。MDIClient类的窗口的句柄m_hWndMDIClient(CMDIFrameWnd)。以下是其实现的步骤:

    一、使用MFC AppWizard向导创建一个多文档窗口应用程序

    1
    、在VC“File”菜单中单击[New],弹出一“New”对话框。在“Projects”页中选择“MFC AppWizard[exe]”,在“Project name”编辑框中输入“DrawBackground”,按[OK]按钮,退出“New”对话框。

    2
    、在“MFC AppWizard step 1”对话框到“MFC AppWizard step 6”对话框中选择默认选项,按[Finish]按钮即完成多文档窗口应用程序的定制。

    注:MFC(Microsoft Foundation Class)MSVisual C++的类库。

    二、向应用程序添加位图

    VC“View”菜单中单击“Resource Includes...”, 在弹出对话框中选择“Bitmap”[Import]按钮从文件中加载位图文件,单击“Workspace”“Resource”便可见到刚才加载的位图文件,默认的资源标识符IDB_BITMAP1

    三、用ClassWiard生成一个 CWnd 类的派生类CclientWnd

    CclientWnd类中重载OnEraseBkgnd(CDC pDC)OnSize(UINTnType, int cx, int cy)函数,并用手工加入重载的虚函数WNDPROC CClientWnd::GetSuperWndProcAddr()用来返回函数指针

    CclientWnd头文件代码如下:

    class CClientWnd : public CWnd

    {

    // Construction

    public:

    CClient();

    // Attributes

    public:

    // Operations

    public:

    // Overrides

    // ClassWizard generated virtual function overrides

    file://{{AFX_VIRTUAL(CClientWnd)

    public:

    virtual WNDPROC
    GetSuperWndProcAddr();

    file://}}AFX_VIRTUAL

    // Implementation

    public:

    virtual
    CClientWnd();

    // Generated message map functions

    protected:

    file://{{AFX_MSG(CClientWnd)

    afx_msg BOOL OnEraseBkgnd(CDC pDC);

    afx_msg void OnSize(UINT nType,int cx, int cy);

    file://}}AFX_MSG

    DECLARE_MESSAGE_MAP()

    };

    CclientWnd的实现文件代码如下:

    // CClientWnd message handlers

    BOOL CClientWnd::OnEraseBkgnd(CDC
    pDC)

    {

    // TODO: Add your message handler code here and/or call default

    CRect rectbk; //
    客户区的大小

    CDC dcMen; //
    内存设备描述表

    CBitmap bmbk; //
    位图对象

    bmbk.LoadBitmap(IDB_BITMAP1); //
    从资源加载位图 bitmap

    //
    得到位图bitmap的大小

    BITMAP stBitmap;

    bmbk.GetObject(sizeof(BITMAP),
    stBitmap);

    CSize bmsize(stBitmap.bmWidth,stBitmap.bmHeight);



    dcMen.CreateCompatibleDC(pDC); //
    创建兼容的设备描述表

    //
    选入新的位图对象并保存旧的位图对象

    CBitmap
    pold=dcMen.SelectObject(bmbk);

    GetClientRect(
    rectbk);

    //
    取得客户区的大小

    //
    从内存向屏幕复制位图对象

    pDC
    >StretchBlt(rectbk.left,rectbk.top,rectbk.Width(),

    rectbk.Height(),
    dcMen,0,0,bmsize.cx,bmsize.cy,SRCCOPY);

    dcMen.SelectObject(pold);
    //
    恢复旧的位图对象 dcMen.DeleteDC();// 释放内存设备描述表 return true; }
    WNDPROC
    CClientWnd::GetSuperWndProcAddr()
    {static WNDPROC NEAR pfnSuper = NULL; return
    pfnSuper; // 返回函数指针 }
    void CClientWnd::OnSize(UINT nType, int cx, int cy)
    {CWnd::OnSize(nType, cx, cy);// TODO: Add your message handler code herefile://
    重画窗口Invalidate();}
    四、修改CMainFrame
    CMainFrame类中定义一个CClientWnd 类的成员变量m_wndClient,并在CMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)函数中把m_wndClient子类化为主框架窗口的客户窗口。代码如下:
    MainFrm.h 中加入:
    include "ClientWnd1.h"
    class CMainFrame : public CMDIFrameWnd
    {private: CClientWnd m_wndClient;};
    MainFrm.cpp
    中加入代码如下:
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {if (CMDIFrameWnd::OnCreate(lpCreateStruct) ==
    1)
    return
    1;
    file://
    m_wndClient子类化为主框架窗口的客户窗口
    if(!m_wndClient.SubclassWindow(m_hWndMDIClient))
    {TRACE("Fail to subclass MDI client window\n");
    return
    1;}}
    五、关键技术
    1
    、本程序并不复杂,关键是要知道多文档窗口应用程序中的主框架窗口的背景区是一个MDIClient类的窗口。
    2
    、选用函数要正确,如CClientWnd::OnEraseBkgnd(CDC pDC)函数中选用GetClientRect(rectbk) 函数来取得客户区的大小要比选用GetClipBox(rectbk) 函数来得好。
    3
    、要在CclientWnd类中重载OnSize(UINT nType, int cx, int cy) 函数,并加入Invalidate() 函数重画窗口。

    展开全文
  • Qt中给窗口添加背景图片

    千次阅读 2020-04-03 10:41:17
    Qt中给窗口添加背景图片的方法有很多,先来总结一下Qlabel添加 一.用Label间接添加窗口背景 在窗口添加一个label放在最底层,然后Label设置图片,并且让label时刻和窗口保持相同大小的尺寸,就可以达到给窗口添加...

    Qt中给窗口添加背景图片的方法有很多,先来总结一下Qlabel添加

    一.用Label间接添加窗口背景
    在窗口添加一个label放在最底层,然后给Label设置图片,并且让label时刻和窗口保持相同大小的尺寸,就可以达到给窗口添加背景图片的效果

    给窗口添加label组件,命名为m_QLabel_BG
    在这里插入图片描述

    首先,声明resizeEvent函数,这是一个在QWidget类中的虚函数,Qwidget-派生->QMainwindow-派生->MainWindow
    要系统自动调用MainWindow中的resizeEvent方法,需要重写resizeEvent方法(Qwidget类型指针(指向MainWindow对象)->resizeEvent()就会调用此方法(猜测)
    在这里插入图片描述
    构造函数中设置bglabel的图片,设置图片显示方式为平铺,然后在resizeEvent函数中加入,label尺寸和窗口一样大小
    在这里插入图片描述
    看效果:
    在这里插入图片描述

    展开全文
  • Swing界面——给窗体添加背景图片

    千次阅读 2014-08-20 23:31:00
    给窗体添加背景图片,为了不影响其他组件的添加,所以要将背景图片添加到面板的最底层。大体思路如下:  首先,要有一个图片,根据图片所在路径实例化一个图片图标(ImageIcon)的对象  ImageIcon image=new ...

           给窗体添加背景图片,为了不影响其他组件的添加,所以要将背景图片添加到面板的最底层。大体思路如下:

           首先,要有一个图片,根据图片所在路径实例化一个图片图标(ImageIcon)的对象

                  ImageIcon image=new ImageIcon(this.getClass().getResource(“图片”));
           这里的this.getClass().getResource("图片")是为了方便在转换成其他形式时仍然可以使用该图片。要注意的的是这里的图片只是一种资源,我们无法无法直接对其进行处理,这时就需要一个载体(组件)来承载。我们可以选择JLable(标签)来作为载体,实例化一个JLable对象label后,用setIcon()方法来将图片添加到标签上。

           接下来就是把组件label添加到窗体最底层上。要添加到最底层,首先要获取窗体的深度,

    (注意: LayeredPane默认为空布局,在空布局的情况下,要想显示组件,必须设置组件的大小和位置。

    以下三种方法只能在空布局情况下使用:setBounds( , , , )/setLocation( ,)/setSize( ,))
    得到界面的深度后,再用add方法添加图片。
           图片添加完成后,运行时并不能显示出来,因为承载图片的组件是添加到最底层的,其他层会覆盖掉该图片,所以要将其他层设为透明才可以显示背景图片。在设置透明前,首先要获取窗体的内容面板

    Container panel=this.getContentPane();此时面板的类型是Container,该类型不包含setOpaque()方法,所以可以通过强制转型将其转为JPanel类型的就可以使用该方法将内容面板设为透明(注意:强制转型的类型间要满足一定的条件,即它们必须有相同的父类)
    代码流程如下:

    ImageIcon image=new ImageIcon(this.getClass().getResource("66.png"));
    
    
    JLabel label=new JLabel();
      
      
    label.setIcon(image);
    
    
    label.setBounds(0, 0, 600, 600);
    
    
    
    this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
    
    Container panel=this.getContentPane();
    
    ((JPanel)panel).setOpaque(false);
    展开全文
  • 如何Java窗体添加背景图片让字显示出来
  • 1、在extjs中新建窗体时,给窗体添加背景图片不显示,例如下面的代码。 不显示的原因:因为设置了 layout: 'fit', Ext.create('Ext.Window', { title: '客户关系管理系统', width: 1024, height: 600, .....
  • [code="java"] import java.awt.event.*; import javax.swing.*; import java.awt.*; public class BackgroundImage extends JFrame { JScrollPane scrollPane;... Image image...
  • package Three; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField;...//怎么把D盘根目录下的 123.jpg添加到这个登录界面的背景
  • [img=https://img-bbs.csdn.net/upload/201405/11/1399823962_928322.png][/img][img=https://img-bbs.csdn.net/upload/201405/12/1399824016_67039.png][/img]
  • 1、添加bitmap资源IDB_BITMAP_BK,大小为899*631(本例中截取的window media player 的界面) 2、初始化窗口的大小 在OnInitDialog()函数中初始化窗口的大小,大小定义为插入的位图的大小;同时去掉窗体默认的...
  • 主要介绍了Java Swing实现窗体添加背景图片的2种方法,结合实例形式较为详细的分析了Swing实现窗体添加背景图片的方法,并总结分析了Swing重绘中repaint与updateUI的区别,需要的朋友可以参考下
  • Form窗体添加背景图片

    千次阅读 2017-05-18 17:14:16
    提升用户体验-------在C++ Builder 中为Form窗体添加背景图片 paip.在C++ Builder 中为Form窗体添加背景图片 Form窗体添加背景图片,一般好几种方法: 1.设置法.但是有些gui库没有提供. 2.image法,不个image放的个最...
  • 本人最新的作业,可能还有点儿不完善,仅供刚刚接触java的初学者参考! sql2005 eclipse6.0
  • java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片
  • PyQt5 无边框窗口添加背景图片 #!/usr/bin/envpython #-*-coding:utf-8-*- importsys fromPyQt5.QtWidgetsimportQApplication,QMainWindow fromPyQt5.QtCoreimportQt classNoBorderWindow(QMai...
  • MFC单文档之窗口添加背景图片

    千次阅读 2017-04-07 17:22:53
    MFC单文档之窗口添加背景图片
  • 今天小编就为大家分享一篇PyQt5 实现给窗口设置背景图片的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • wpf 窗体添加背景图片

    千次阅读 2019-06-14 08:29:47
    在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景。 在WPF 利用Expression Blend工具如何达到这种效果呢?比如我们想做一个登陆窗体界面...
  • PyQt5 无边框widget窗口添加背景图片 #!/usr/bin/envpython #-*-coding:utf-8-*- importsys fromPyQt5.QtWidgetsimportQApplication,QWidget fromPyQt5.QtCoreimportQt fromPyQt5.QtGuiimportQPa...
  • 标题添加Tab页面背景图片后出现窗体闪烁问题 首先,我在网上找了一些窗体闪烁的问题,多是说窗体加载需要添加双通道缓存。修改如下 在public Form()函数里面添加 SetStyle (ControlStyles.AllPaintingInWmPaint //...
  • 其实很简单首先添加背景图片到所在工程,设置为嵌入式资源。接着获取嵌入式图片资源,覆写OnPaint绘制背景。 privateImagebgImage; publicFormBase() { bgImage=newBitmap(Assembly.GetExecutingAssembly()....
  • 相信大家在GUI编程过程中,也就是开发窗口程序过程中,比如游戏界面等,难免会需要给窗口添加背景图片,接下来我将大家详细讲解如何窗口设置背景图片。 一、知识点介绍 窗口绘制背景背景图片需要用到"java"中...
  • delphi 窗体添加背景图片

    千次阅读 2016-09-20 10:22:48
    var  Bmp: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin  Bmp := TBitmap.Create;  Bmp.LoadFromFile('F:\visentest\0432_BMP.Cool\abcd.bmp');  Brush.Bitmap := Bmp;...
  • 窗体添加背景图片

    2009-01-08 20:18:00
    private Image bgImage;public FormBase() { bgImage= new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("CMclient.Image.Img_BackGround.gif")); }//绘制背景 
  • QT我们的窗口添加背景图片

    千次阅读 2013-03-06 16:36:08
    串口添加背景图片有很多种方法,接下来来中特殊的方法。使用调色板来实现哦    QPalette p = palette(); // 得到窗口部件的调色板  QPixmap img("a.png"); //蓝色图片  p.setBrush(QPalette::Window, ...
  • 使用XtraTabbedMdiManager控件管理Mdi里面的窗体后,发现背景图片不能显示,重写DevExpress.XtraTabbedMdi.XtraTabbedMdiManager的DrawNC方法就行了。using System;using System.Collections.Generic;using System....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,608
精华内容 34,243
关键字:

如何给窗体添加背景图片