java为什么给窗体添加背景图片不是立即显示的?

packagecom.tarena.elts.ui;importjava.awt.BorderLayout;importjava.awt.Container;import... package com.tarena.elts.ui;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.JPanel;
import javax.swing.JPasswordField;

import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
/** 登录界面 是一个具体窗口框 */
public class LoginFrame extends JFrame{
/**
*
*/
private final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height;
private final int WEIGHT = Toolkit.getDefaultToolkit().getScreenSize().width;

private static final long serialVersionUID = -7993721800179709451L;

public LoginFrame() {
init();

}

/** 初始化界面组件和布局的 */
private void init(){

this.setTitle("登录系统");
this.setLocation((WEIGHT - 300) / 2, (HEIGHT - 200) / 2);
JPanel contentPane = createContentPane();
this.setContentPane(contentPane);
// setLocationRelativeTo(null);//居中
setSize(300,200);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
clientContext.exit(LoginFrame.this);
}
});
}

public void paint(Graphics g) {
super.paint(g);
ImageIcon icon = new ImageIcon(this.getClass().getResource("login.png"));
JLabel jl1=new JLabel(icon);
jl1.setBounds(0, 0, 300, 200);
this.add(jl1);
}
private JPanel createContentPane(){
JPanel p = new JPanel(new BorderLayout());
p.setBorder(new EmptyBorder(8,8,8,8));
p.add(BorderLayout.NORTH,
new JLabel("登录考试系统", JLabel.CENTER));

return p;
}

}
展开
 我来答
earth木婉清
2014-07-15 · 超过42用户采纳过TA的回答
知道答主
回答量:293
采纳率:0%
帮助的人:134万
展开全部
你这个能显示?show都没见
追问
只粘贴了部分代码,是想问下在BorderLayout和FlowLayout布局下,怎么给整个窗体添加背景图片。
追答
JLabel jl = new JLabel(new ImageIcon(图片路径));
jl.setBounds(位置和大小);
this.getLayeredPane().add(jl);// 设置背景为图片
969218687
2014-07-16
知道答主
回答量:92
采纳率:0%
帮助的人:11.6万
展开全部
是不是要在构造方法最后一行添加
this.setVisible(true);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呼哈嘿吼呵Cf
2014-07-15 · TA获得超过210个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:208万
展开全部
窗体重绘一次试试看呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式