java如何设置背景图片?并且不覆盖上面的组件?
发布网友
发布时间:2022-04-24 13:02
我来回答
共2个回答
热心网友
时间:2023-10-13 17:12
用 内部样式表 不覆盖用div追问能写一下具体代码吗?谢谢
热心网友
时间:2023-10-13 17:12
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();
}
}
}
java中swing窗体美化(swing的控件美化)
java怎么改变窗体边框的颜色?1、java.awt包中的TextField类(单行文本框)、TextArea类(多行文本框),以及javax.swing包中的JTextField类(单行文本框)、JTextArea类(多行文本框),它们都有setBackground方法来设置此文本组件的背景色。2、DefaultTableCellRenderer,只需要覆盖它的getTableCellRendererCo...
java中如何设置背景图片
2 通过JPanel面板来设置窗体背景 JPanel面板是Java中的容器之一。而Java中的容器是没有背景图片的属性的,它们只有背景颜色,如果需要在JPanel面板上设置窗体背景,就需要重写paintComponent(Graphics g)方法,即把所要设置的背景图片画上作为JPanel面板的背景。具体实现如下:首先定义一个JPanel的子类BjPanel,由...
java中给frame(不是JFrame)设置背景,如何不覆盖组件
推荐重写Panel的paint方法方法即可,在paint方法里, 绘制背景图片 import java.awt.Button;import java.awt.EventQueue;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.Panel;import java.awt.TextField;import java.awt.Toolkit;import java.awt.event.WindowAdapter...
JAVA,Swing中的窗口怎么添加背景图?在图片重绘时,不把图片上的组件覆盖...
用JLabel作为背景,然后组件添加在JLabel上,就是把JLabel看作是跟JPanel同等级的容器,这样就没有你重绘时覆盖组件的问题了,给你个示例 package my.test.main;import java.awt.BorderLayout;public class First extends JDialog {private final JPanel contentPanel = new JPanel();private JTextField...
怎样将图片设置为java程序中的背景
具体步骤如下所示:1、打开电脑,进入软件中,编写设置大小的代码,代码如下所示。2、在左边的选项中选择javastudy包,在子文件下选择Java。3、选择之后,就会看到以下画面,通过代码加入图片,代码如下图所示。4、写好代码之后,选择左边的菜单,如下图所示,点击以下选项。5、图片插入之后,就成功了。
java.awt.frame 设置背景图片,不是用JFrame 直接用的Frame 建立的窗口...
import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.io.*;import javax.imageio.ImageIO;import javax.swing.*; class myFrame extends Frame { Button bt;public myFrame() {bt= new Button("按钮");JPanel jp = new JPanel();jp.add(bt);jp.setOpaque(...
JAVA界面设计怎么插入背景图片?
可以利用标签组件来设置。具体方法如下:利用标签组件来设置,具体代码如下:JPanelpnlMain=new JPanel(); //创建面板pnlMain。getContentPane().add(pnlMain); //将pnlMain设置为主面板。Iconi=new ImageIcon("背景.jpg"); /*用源图片“背景.jpg”构造一个ImageIcon对象i,需要注意如果图片的路径使用...
java中的frame如何添加背景图片,窗口中加了面板,或者直接在面板中添加图...
public class Demo extends JFrame { JLabel jl =new JLabel(); public Demo() { jl =new JLabel(new ImageIcon("bg.jpg")); this.add(jl); this.setSize(300, 200); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] ...
java怎么让背景图片不覆盖界面?
protected JLabel qing;protected JTextField wen;protected JButton q;protected String ll;Ci() {this.setBounds(100, 100, 420, 320);a = new JPanel();si = new JLabel("i");qing = new JLabel("请输入关键字");wen = new JTextField(10);q = new JButton("确定");q.addAction...
java 设置窗口背景图片还有设置按钮的字体格式例如大小等等··_百度...
要加背景的话,可以先声明一个背景JPanel,在这个JPanel上面画上图片,可以像这样做 JPanel panel = new JPanel() { Override protected void printComponent(Graphics arg0) { // TODO Auto-generated method stub super.printComponent(arg0);arg0.drawImage(img, x, y, width, height, observer)...