您的位置:首页 > 编程语言 > Java开发

Java图形界面

2016-03-03 00:13 453 查看
      具有图片背景的登录界面

三个类:LoginFrame  , LoginPane  ,BackGroundPane。

一张图片:1.jpg,放到eclipse新建的images文件夹中



 

代码:

1、

import javax.swing.JFrame;

import day18.LoginPane;   //根据新建不同的包选择

public class LoginFrame extends JFrame {

 public LoginFrame() {

  // setLocation(400,500); //设置位置

  setLocationRelativeTo(null);// 居中

  setSize(500, 400);// 窗口尺寸大小

  setResizable(false);// 禁止调节窗口大小

  //setBounds(100, 522, 100, 120);// 设置位置和尺寸大小

  LoginPane lp = new LoginPane("images/1.jpg");

  setContentPane(lp);//替换原来的默认面板

 }

 public static void main(String[] args) {

  LoginFrame lf = new LoginFrame();//创建窗口对象  

  lf.setVisible(true);

         

 }

}

 

2、

import java.awt.Color;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

/**

 * 登录面板 - 需要继承JPanel才能成为面板

 *

 */

public class LoginPane extends BackGroundPane{

 

 /**用户名*/

 private JLabel usernameLb;

 /**密码*/

 private JLabel passwordLb;

 /**用户名输入框*/

 private JTextField usernameTf;

 /**密码输入框*/

 private JPasswordField passwordPf;

 /**登录按钮*/

 private JButton loginBtn;

 /**重置按钮*/

 private JButton resetBtn;

 public LoginPane(String imageUrl){

  super(imageUrl);

  

  setBackground(Color.GREEN);//设置背景颜色

  

  initComponents();//初始化组件

  layoutComponents();//布局组件

 }

 /**

  * 初始化组件

  */

 private void initComponents(){

  usernameLb = new JLabel("用户名");

  passwordLb = new JLabel("密码");

  usernameTf = new JTextField();

  passwordPf = new JPasswordField();

  loginBtn = new JButton("登录");

  resetBtn = new JButton("重置");

 }

 /**

  * 布局组件

  */

 private void layoutComponents(){

  setLayout(null);//绝对定位布局

  

  usernameLb.setBounds(80, 50, 50, 30);//设定组件的绝对位置和大小

  usernameTf.setBounds(150, 50, 150, 30);

  

  passwordLb.setBounds(80, 100, 50, 30);//设定组件的绝对位置和大小

  passwordPf.setBounds(150, 100, 150, 30);

  

  loginBtn.setBounds(100, 150, 80, 30);

  resetBtn.setBounds(200, 150, 80, 30);

  

  add(usernameLb);

  add(usernameTf);

  add(passwordLb);

  add(passwordPf);

  add(loginBtn);

  add(resetBtn);

 }

}

 

3、
import java.awt.Graphics;

import java.awt.Image;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.JPanel;

/**

 * 具有背景的面板

 */

public class BackGroundPane extends JPanel {

 private String imageUrl;

 public BackGroundPane(String imageUrl) {

  super();

  this.imageUrl = imageUrl;

  

 }

 @Override

 protected void paintComponent(Graphics g) {

  super.paintComponent(g);

 

  if(null!=imageUrl){

   try {

   Image img = ImageIO.read(new File(imageUrl));

   g.drawImage(img, 0, 0, getWidth(), getHeight(), null);

   } catch (IOException e) {

    e.printStackTrace();

  }

  }

   }

}

 

运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: