现在的位置: 首页 > 综合 > 正文

在JFrame上添加背景图片

2016年01月22日 ⁄ 综合 ⁄ 共 2552字 ⁄ 字号 评论关闭

//本程序用来在JFrame上添加背景图片,使程序更加人性化!,添加方法用到了一个JPanel的内部类,并可以更改按钮的背景图片

package GUITest;

/*@功能:本程序用主要就是在JFrame上添加背景,原理很简单,声明一个继承于Jpanel的内部类,
 *@在顶层容器JFrame上添加一个JPanel,然后设置Jpanel布局方式为null,并根据自己的需要在panel上添加相应的组件
 *@Date:2014-5-10 最后修改
 *@Author:何龙    
 *@QQ:471628912
 */
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;

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.JWindow;

public class LoginFrame extends JFrame {
	private JLabel label1, label2;
	private JTextField userName;// 用户名
	private JPasswordField password;// 密码输入框
	private JButton button1, button2;

	public LoginFrame() {
		getContentPane().setLayout(new BorderLayout(0, 0));

		JPanel panel = new ImagePanel();
		getContentPane().add(panel);

		// 设置panel的布局方式为null
		panel.setLayout(null);

		// 添加两个“用户名”“密码”的label,通过字体的大小更改label的大小
		label1 = new JLabel("用户名");
		label1.setFont(new Font("宋体", Font.BOLD, 26));
		label1.setForeground(Color.yellow);
		label1.setBounds(475, 350, 100, 50);
		label2 = new JLabel("密   码");
		label2.setFont(new Font("宋体", Font.BOLD, 26));
		label2.setForeground(Color.yellow);
		label2.setBounds(475, 430, 100, 50);

		// 添加两个输入框,用于输入用户名和密码。用户名用JTextFied,密码用JPasswordField
		userName = new JTextField(10);
		userName.setBounds(575, 350, 200, 50);
		userName.setFont(new Font("宋体", Font.BOLD, 20));
		userName.setColumns(15);

		password = new JPasswordField(10);
		password.setBounds(575, 430, 200, 50);
		password.setFont(new Font("宋体", Font.BOLD, 30));
		password.setColumns(15);
		// char c = '#';
		// password.setEchoChar(c);

		// 添加两个按钮,用于显示登录和注销功能!!
		button1 = new JButton("登陆");
		button1.setFont(new Font("宋体", Font.BOLD, 26));
		button1.setForeground(Color.black);
		button1.setBounds(475, 530, 100, 50);
		// 可以通过下面的语句更改button的按钮背景,可以用一张艺术字图片更改按钮上的图标,使按钮显得漂亮
		// button1.setIcon(new ImageIcon("src/pic/2.jpg"));

		button2 = new JButton("注销");
		button2.setFont(new Font("宋体", Font.BOLD, 26));
		button2.setForeground(Color.black);
		button2.setBounds(675, 530, 100, 50);

		// 添加所需组件
		panel.add(label1);
		panel.add(userName);
		panel.add(label2);
		panel.add(password);
		panel.add(button1);
		panel.add(button2);
	}

	public static void main(String args[]) {

		// new一个新的窗口,窗口是在构造器中生成的,而JApplet可以在init()方法里初始化,注意这两者的区别
		LoginFrame frame = new LoginFrame();
		frame.setSize(900, 700);// 窗体大下
		frame.setLocation(100, 100);// 窗口初始位置
		frame.setResizable(false);// 不可更改窗体大小
		frame.setDefaultCloseOperation(EXIT_ON_CLOSE);// 默认关闭方式
		frame.setVisible(true);// 窗口可见

	}

	class ImagePanel extends JPanel {
		protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			ImageIcon icon = new ImageIcon("src/pic/1.jpg");
			g.drawImage(icon.getImage(), 0, 0, null);
		}
	}
}

最终效果

抱歉!评论已关闭.