java.awt.frame 设置背景图片,不是用JFrame 直接用的Frame 建立的窗口?

java.awt.frame 设置背景图片,不是用JFrame 直接用的Frame 建立的窗口?,第1张

import javaawt;
import javaawtevent;
import javaawtimage;
import javaio;
import javaximageioImageIO;
import javaxswing;
 class myFrame extends Frame {
 Button bt;
public myFrame() {
bt= new Button("按钮");
JPanel  jp = new JPanel();
jpadd(bt);
jpsetOpaque(false);
thisadd(jp,BorderLayoutSOUTH);
thissetBounds(300, 300, 300, 200);
// thissetBackground(Colorred);
thissetVisible(true);
}
//重写paint方法,在这里绘制背景
public void paint(Graphics g) {
superpaint(g);
BufferedImage image;
try {
image = ImageIOread(new File("C:\\Users\\XXX\\Desktop\\12jpg"));
gdrawImage(image, 0, 0, null);
} catch (IOException e) {
eprintStackTrace();
}
}
}
public class m_method {
public static void main(String[] args) {
myFrame yFrame = new myFrame();
yFrameaddWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Systemexit(0);
}
});
}
}

这是我以前的一个小代码你可以看看
public class demo_9 extends JFrame {
JSplitPane jsp = null;
JList jlist;
JLabel jlabel;
public static void main(String[] args) {
demo_9 a = new demo_9();
}
public demo_9(){
String []words ={"boy","girl"};
JList jlist = new JList(words);
jlabel = new JLabel(new ImageIcon("Image//真三gif"));
//这里就是引入了
//拆分窗格
jsp = new JSplitPane(JSplitPaneHORIZONTAL_SPLIT,jlist,jlabel);
jspsetDividerLocation(70);
//设置可以伸缩
jspsetOneTouchExpandable(true);
thisadd(jsp);
thissetTitle("test");
thissetSize(400,300);
thissetLocation(400,200);
thissetVisible(true);
}

}
步骤:首先先在project里新建个文件夹(Folder),然后把你要插入的复制黏贴到这个文件夹里面。
例如我那个引入的代码:jlabel = new JLabel(new ImageIcon("Image//真三gif"));
我new一个folder叫Image,名称叫"真三gif"

OK,我用你的程序测试了一下,基本帮你解决了,你在这个位置写上这几句

exitaddActionListener(new ActionListener(){//退出系统监听

public void actionPerformed(ActionEvent e){

setVisible(false);

}

});

/加入背景的话/

ImageIcon im = new ImageIcon("/image/denglujiemianjpg");

JLabel  l1 = new JLabel(im);

l1setBounds(0,0,300,200);

deskpaneadd(l1);

thissetBounds(200,200,300,200);

setVisible(true);

}

注释:ImageIcon im = new ImageIcon("/image/denglujiemianjpg");

这里的image是需要你自己创的一个包,里面放你需要的,记住书写格式  "/image/jpg"

效果截图:

指一下方向 ,对SWING有点熟就可以,用起来,不是很难
空白的 整个的背景,覆盖
public void paint(Graphics g)
方法。
如果列表内容也要修改,要重写ListCellRenderer类。

public class CreateIcon {
static String path=SystemgetProperty("userdir")+"\\WebRoot\\Img\\";
public static ImageIcon add(String ImageName){
ImageIcon icon = new ImageIcon(path+ImageName);
return icon;
}
}

先定义一个方法,然后下面调用,注意把放在项目的WebRoot\\Img的目录下即可

final JLabel label = new JLabel();
ImageIcon loginIcon=CreateIconadd("backImgjpg");
labelsetIcon(loginIcon);


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12694322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存