在用java swing 时遇到关于设置背景图片的问题

问题描述

在用java swing 时遇到关于设置背景图片的问题

public class LoginPanel extends JPanel {
protected ImageIcon icon;//protected的访问权限是同一个包的类即可访问它
public int width,height;

public LoginPanel(){
    super();//调用父类的构造方法,此处可以不显示调用,系统会自动隐式调用
    icon=new ImageIcon("res/login.jpg");
    width=icon.getIconWidth();
    height=icon.getIconHeight();
    setSize(width,height);//调用继承自父类JPanel中 的setSize()方法设置面板的大小因为是继承来的是自己的了所以在类内可以不用实例对象去调用
    //this.setSize(width,height);
}

//想要将这张图片作为背景图片,是不能直接使用add()方法添加该icon对象的;在LoginPanel类中重写paintComponent()方法,并在该方法中调用Graphics类的drawImage()方法绘制该图片
//重写paintComponent()方法
protected void paintComponent(Graphics g){
    super.paintComponent(g);//调用父类的paintComponent()方法
    Image img = icon.getImage();
    g.drawImage(img,100,100,this);//在当前面板中绘制该Image文件 img;this参数表示图片绘制在哪里
    System.out.println("执行了paintComponent()方法");
}

为什么在主类中使用new LoginPanel()实现一个实例对象时,函数会执行重写的paintComponent(Graphics g)方法(输出了执行了paintComponent()方法);原则上这个方法LoginPanel中的实例方法,,在实例化类的时候不应该会执行的啊? 请问为什么这里会被执行,或者说实例化 对象时类中的哪些部分会被执行哪些不被执行,求大神帮忙总结一下
附测试用的主函数代码
public class test {

public static void main(String[] args) {
    // TODO Auto-generated method stub

    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame jf = new JFrame();
    jf.add(new LoginPanel());
    jf.setVisible(true);
    jf.setSize(800,800);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

时间: 2024-09-30 02:25:50

在用java swing 时遇到关于设置背景图片的问题的相关文章

Java Swing中两种设置背景图(容器图片)

在java swing中需要为容器添加图片,或者背景图片. 提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel 1.JPanel(源代码) [java] view plaincopy package oo;      import java.awt.Graphics;   import java.awt.Image;   import java.io.File;      import javax.swing.ImageIcon;   import javax.swing.JF

jsp-Jsp做界面时怎么设置背景图片和插入图片啊?

问题描述 Jsp做界面时怎么设置背景图片和插入图片啊? 我在用myeclips中的JSP做界面时怎么也插入不了图片,也不知道图片应该放在哪个文件夹下,求指导 解决方案 郁闷,这个编辑器不好使,都乱了!重新排一下. 如果只是单纯的为网页添加背景,就跟制作简单的html和css是一样的.1.添加背景图片,最简单的就是在body标签中添加属性background=""图片路径""或者在body标签内使用内部样式style=""background-im

jpanel设置背景图片的二个小例子_java

这个Jpanel可以动态加载一个图片做背景 复制代码 代码如下: import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit; import javax.swing.JPanel; /** * 一个可以动态加载一个图片做背景的Jpanel */public class ImagePanel extends JPanel{ Image im; //构造函数制定Jpanel的大小 public ImagePanel(I

html-div里面用style="background-image:url(来设置背景图片

问题描述 div里面用style="background-image:url(来设置背景图片 但是背景图片太大了,页面上显示不了,怎么才能设置div里面的这个图片的大小呢,或者用哪种方式或属性能让图片自适应呢?代码大概如下: );height:expression(body.clientHeight>639?603:(body.clientHeight-36));"> 求指教啊.. 解决方案 用 background-size 属性可以调整背景图片的尺寸或者让它适应 div

为jframe窗口设置背景图片

终于成功实现了如何为jframe窗口设置背景图片了.下面是示例,请初学swring的朋友们参考学习! import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class JFrameBackground {

word2013怎样设置背景图片?

  word2013怎样设置背景图片呢?在使用word2013时,我们希望是文字搭配图片一起显示,这要怎么设置呢?下文小编就教大家word2013插入背景图片的方法,还不会的朋友可以来下文了解下哦~ word2013插入背景图片方法: 1.首先打开word2013,这里小编先打开一个空白文档,先下面先给它设置背景图片,然后后面再上面写一段文字 2.在上面一行的菜单工具栏中点击"插入",打开插入功能选项,在插入功能中,我们可以插入各种能够插入的功能,如表格.图片.视频等. 3.因为我是要

Button设置背景图片代码设的有padding效果,布局中没有

问题描述 Button设置背景图片代码设的有padding效果,布局中没有 ?在给Button设置背景图片时:1.如果在布局文件中设置 android:id=""@+id/timeTypeBtn"" android:layout_width=""wrap_content"" android:layout_height=""wrap_content"" android:layout_ali

winform-c#Winform 很大的Panel设置背景图片,最小化之后再恢复最大化,有明显的卡顿

问题描述 c#Winform 很大的Panel设置背景图片,最小化之后再恢复最大化,有明显的卡顿 Winform 程序 在主页面分3个区域,1.左侧菜单 2.上不导航栏 3. 内容部分 3块区域占满屏幕,每个panel都是在构造函数设置了 BackgroundImage和 BackgroundImageLayout = ImageLayout.Zoom; 在我的程序最小化,然后再最大化的时候,会有明显的卡顿 我有测试过,图片越多,卡的越明显,目前我就3张图,就很明显的卡.我不设置这些Panel的

【android基础】之Android设置背景图片【原创】

Android开发,设置背景图片 Android1.6运行通过 开发环境:NentBeans6.9.1 + nbandroid 1.先在建好的工程目录(我的是:D:\我的文档\NetBeansProjects\Android1.6工程\背景图片\AndroidBgImg\res\)下 新建一个drawable文件夹,把背景图片放进去,我用的是bg1.png,如下: 2.修改main.xml,在LinearLayout 里添加android:background="@drawable/bg1&qu