java如何设置背景图片?并且不覆盖上面的组件?

如图,要给界面设置背景图片,求大神指点,希望给出以测试过的完整代码,谢谢了... 如图,要给界面设置背景图片,求大神指点,希望给出以测试过的完整代码,谢谢了 展开
 我来答
百度网友8443397
2015-05-28 · TA获得超过227个赞
知道小有建树答主
回答量:333
采纳率:20%
帮助的人:116万
展开全部
用 内部样式表 不覆盖用div
追问
能写一下具体代码吗?谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
godfather1103
推荐于2016-03-09 · TA获得超过3421个赞
知道大有可为答主
回答量:4501
采纳率:66%
帮助的人:1771万
展开全部
package windows;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.font.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;

import util.ConnectionDB;

public class Location extends JFrame implements ActionListener{
//用户名的文本框
JTextField JTF = new JTextField(20);
//密码的文本行
JPasswordField JPF = new JPasswordField(25);
Location(){
//设置窗体标题
this.setTitle("用户登录");
//设置窗体大小
this.setSize(200, 200);
//设置背景色
this.setBackground(java.awt.Color.lightGray);
        //窗体关闭时结束程序
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//获取内容窗格
Container jf_con = this.getContentPane();
//设置布局管理器
jf_con.setLayout(new BorderLayout());
//获得图片对象
ImageIcon backIcon=new ImageIcon("background.jpg"); 
//把图片绘制到背景面板上
    JLabel backLabel=new JLabel(backIcon);  
// 创建背景标签
backLabel.setSize(backIcon.getIconWidth(), backIcon.getIconHeight());
backLabel.setLocation(0, 0); 
// 设置标签定位  
backLabel.setLayout(new GridLayout(4,1));
//建立登录和注册按钮
JButton JB[] = new JButton[2];
JB[0] = new JButton("登录");
JB[1] = new JButton("注册新账号");
for(int i=0;i<2;i++)
{
        JB[i].setForeground(Color.red);
        Font font =new Font("黑体",0,16);
        JB[i].setFont(font);
JB[i].addActionListener(this);
}
//建立用户名,注册和密码标签
JLabel JL[] = new JLabel[2];
JL[0] = new JLabel("用户名");
JL[1] = new JLabel("密码");

//建立面板
JPanel JP[] = new JPanel[4];
//用户名面板
JP[0] = new JPanel();
JP[0].setLayout(new GridLayout(2,1));
JP[0].add(JL[0]);
JP[0].add(JTF);
//密码面板
JP[1] = new JPanel();
JP[1].setLayout(new GridLayout(2,1));
JP[1].add(JL[1]);
JP[1].add(JPF);
//登录按钮面板
JP[2] = new JPanel(new FlowLayout());
JP[2].add(JB[0]);
//注册按钮面板
JP[3] = new JPanel(new FlowLayout());
JP[3].add(JB[1]);
//把面板的背景设置为透明
for(int i=0;i<4;i++)
JP[i].setOpaque(false);
//把所有面板放置到窗体上
backLabel.add(JP[0]);
backLabel.add(JP[1]);
backLabel.add(JP[2]);
backLabel.add(JP[3]);
jf_con.add(backLabel); 
//把窗口移到屏幕中间
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
int x=(dim.width-200)/2;
int y=(dim.height-100)/2;
this.setLocation(x, y);
//去除窗体的最大化键
this.setResizable(false);
this.setVisible(true);
}
public static void main(String[] args){
new Location();
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
  JButton j=(JButton)e.getSource();
  String x=null;
  x=j.getText();
  if(x=="登录"){
this.setVisible(false);
Connection con=ConnectionDB.getConnection(); 
String sql="select L_Pass,L_Degree from Location where L_Location=?";
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
ResultSet rs=null;
try {
ps.setString(1, JTF.getText());
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
rs=ps.executeQuery();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String pass = null;
String degree = null;
try {
while(rs.next()){
pass=rs.getString("L_Pass");
degree=rs.getString("L_Degree");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String s=new String(JPF.getPassword());
if(!s.equals(pass)){
JOptionPane.showMessageDialog(null, "用户名或密码错误","警告",JOptionPane.ERROR_MESSAGE);
this.setVisible(true);
JPF.setText(null);
}
else{
if("0".equals(degree))
System.out.println("Client");
else if("1".equals(degree))
new Administrator();
else if("2".equals(degree))
System.out.println("Others");
}
  }
  else if(x=="注册新账号"){
  this.setVisible(false);
  new Registration();
  }
}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式