java-Java如何添加背景。。。。。。。

问题描述

Java如何添加背景。。。。。。。

如何为面板添加背景图片,求大神指导,代码如下:(自己添加的时候总是把组件遮挡了或者添加不上去)
万分感谢!!
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class Main extends JFrame implements ActionListener {
/**
* @param args
*/
JLabel l1 = new JLabel("武汉纺织大学学生信息查询");
JLabel l2 = new JLabel("用户登陆");
JLabel l3 = new JLabel("用户名 :");
JLabel l4 = new JLabel("密 码 :");
JTextField t1 = new JTextField();
JPasswordField t2 = new JPasswordField();
JButton button1 = new JButton("登陆");
JButton button2 = new JButton("重置");
static JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER, 2, 2));
Font f1 = new Font("宋体", Font.BOLD, 20);
Font f2 = new Font("宋体", Font.BOLD, 30);
Font f3 = new Font("宋体", Font.BOLD, 15);
public static String currentSID = "";

public Main() {
    GUI();
}
public void GUI() { // 面板设计
    p1.add(l1);
    p1.add(l2);
    p1.add(l3);
    p1.add(l4);// 文字
    p1.add(t1);
    p1.add(t2);// 文本框
    p1.add(button1);
    p1.add(button2);// 按钮
    add(p1);
    p1.setBackground(Color.black);
    p1.setLayout(null);
    l1.setBounds(100, 50, 400, 30);
    l1.setFont(f2);
    l1.setForeground(Color.cyan);
    l2.setBounds(250, 150, 130, 40);
    l2.setFont(f1);
    l2.setForeground(Color.cyan);
    l3.setBounds(170, 230, 100, 40);
    l3.setFont(f1);
    l3.setForeground(Color.cyan);
    l4.setBounds(170, 280, 100, 40);
    l4.setFont(f1);
    l4.setForeground(Color.cyan);
    t1.setBounds(280, 240, 130, 20);
    t1.setFont(f3);
    t2.setBounds(280, 290, 130, 20);
    t2.setFont(f3);
    button1.setBounds(200, 350, 80, 30);
    button1.setFont(f1);
    button2.setBounds(300, 350, 80, 30);
    button2.setFont(f1);
    button1.addActionListener(this);
    button2.addActionListener(this);
}

public void actionPerformed(ActionEvent e) { // 登陆消息响应
    // TODO Auto-generated method stub
    Object source = e.getSource();
    if (source == button1) {
        String user = t1.getText();
        String password = t2.getText();
        if((user.equals("admin")==true)&&(password.equals("123")==true))
         {
        setVisible(false);
        new panel();
         }
         else if(login(user,password))
         {
             setVisible(false);
             new vo();
         }
         else if((user.equals("")==true&&(password.equals("")==true)))
         {
             JOptionPane.showMessageDialog(null, "请输入用户名和密码!", "提示", 2);
         }
         else{
             JOptionPane.showMessageDialog(null, "输入的用户名或密码错误!请重新输入!", "提示", 2);
             t1.setText(null);
             t2.setText(null);
         }
    }
    if (source == button2) {
        t1.setText(null);
        t2.setText(null);
    }
}

public boolean login(String name,String password){ // 调用xml文档中的参数登陆
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        DocumentBuilder domParser = factory.newDocumentBuilder();
        Document document = domParser.parse(new File("class.xml"));
        try {
            NodeList imags = document.getElementsByTagName("student");
            int j = imags.getLength();
            for (int k = 0; k < j; k++) {
                Element elink = (Element) imags.item(k);
                String number = elink.getElementsByTagName("number").item(0)
                        .getTextContent();
                String classes = elink.getElementsByTagName("classes")
                        .item(0).getTextContent();
                if(name.equals(number) && password.equals(classes)){
                    currentSID = number;
                    return true;
                }
            }
        } catch (Exception e) {
            System.out.println(e);
            System.out.println("错误");
        }

    } catch (Exception e) {
        System.out.println(e);
        System.out.println("错误");
    }
    return false;
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Main f = new Main();
    f.setTitle("武汉纺织大学");
    f.add(p1);
    f.setSize(600, 600);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    try {
        // 设置界面的外观,为系统外观
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        SwingUtilities.updateComponentTreeUI(f);
    } catch (Exception e) {
        e.printStackTrace();
    }

}
}

时间: 2024-12-31 00:18:34

java-Java如何添加背景。。。。。。。的相关文章

java swing如何添加背景图片并能根据窗口大小进行缩放

前段时间在用JAVA SWING做个客户端的时候,有要在一块主面板上添加背景图片的需求,于是自己在网上找了些资料研究一下,有些网友说用JLabel来做,通过设置它的icon属性来实现,但个人感觉这种做法很HACK,呵呵,而且这种方法容易带来在上面的内容被遮住等等的问题,所以个人更喜欢用一个继承JPanel的类来实现的方法,其实我感觉它跟Web中的层的概念有几分相似吧,只需要把这个"层"加到面板的最下面,作为垫底的,就OK了,来看看怎样实现它: import javax.swing.JP

java-Java代码添加背景图片

问题描述 Java代码添加背景图片 final JPanel operatePanel = new JPanel(); operatePanel.setLayout(new GridBagLayout()); getContentPane().add(operatePanel, BorderLayout.NORTH); 怎么给这个添加背景图片呢 解决方案 Java 添加背景图片校内网css代码添加背景图片代码给Java应用程序添加背景图片 解决方案二: java awt的添加背景图片的问题,参考

java swing中如何为一个窗体添加背景图片

问题描述 java swing中如何为一个窗体添加背景图片 java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片 解决方案 http://blog.csdn.net/caixiexin/article/details/6608919 解决方案二: 在JFrame中添加JPanel面板,然后就可以设置了.

java界面-Java怎么给窗口添加背景图片

问题描述 Java怎么给窗口添加背景图片 package Three; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class CopyOfTest3 { JFrame frame = new JFrame("小小熊^_^管理系统&g

buffer-在下面的java程序中添加按照字母顺序排序,如何添加

问题描述 在下面的java程序中添加按照字母顺序排序,如何添加 package test1;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matcher;import java.util.regex.Pattern; p

java-我的Java代码怎么添加事件:点击“加水”,“请加水”就变成“不需要加水”?

问题描述 我的Java代码怎么添加事件:点击"加水","请加水"就变成"不需要加水"? import javax.swing.JLabel; import javax.swing.JPanel; public class Left { private JLabel textWater = new JLabel("请加水"); private JPanel panel1 = new JPanel(); public Left()

java中循环添加按钮后 要添加监听这么区分按钮

问题描述 java中循环添加按钮后 要添加监听这么区分按钮 while(rs.next()){ String friendId=rs.getString(""friendid""); jb=new JButton(); jb.setText(friendId); jb.setBounds(10i10030); i=i+50; jsp.add(jb); } 这句话循环读数据库去除ID然后添加按钮,但是这么区分 我试验了下 监听只能最后一个按钮能行 其他不行 解决方案

五子棋-关于java为什么我的背景图片出不来

问题描述 关于java为什么我的背景图片出不来 package org.liky.game.frame; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.Fi

移动- java为按钮添加定时器

问题描述 java为按钮添加定时器 各位好,我想问一下:假如我有一个按钮,我想要的效果是,我鼠标移动到按钮位置,定时器触发,分别在4秒中每一秒显视一个按钮 btn_jsrsz.addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent e) { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { btn

c++-关于java中Map添加数据的问题

问题描述 关于java中Map添加数据的问题 我定义了Map revmap=new HashMap(); 但是当我向revmap中添加数据时总提示错误. revmap.put(num_vertices, p); 其中num_vertices是int型,p是Point2d型,错误提示让把num_vertices改为integer型是怎么回事? 补充内容: 其实我是看到了一个C++程序,需要把它该写为java程序,C++代码所用的数据结构如下: std::map<int, int> Map; st