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();
}
}
}
}
运行结果如下:
三个类: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();
}
}
}
}
运行结果如下:
相关文章推荐
- java基础总结第一篇(JAVA简介)
- Spring MVC返回json数据的配置方式
- Java支持的数据类型有哪些?什么是自动拆装箱?
- spring RestTemplate用法详解
- spring异步线程的处理 @@Async介绍
- spring代码笔记
- java-tip-Collections.synchronized系列生成的容器
- Java集合基础 一 几个实现类之间的比较
- java 3S
- 关于java内存使用的相关问题(寄存器、栈、堆、静态存储、常理存储、非RAM存储)
- java 对象赋值是引用还是克隆
- 异常总结
- 如何在jmeter中调用自己写的java工具包
- JavaWeb----重定向请求sendRedirect、forward
- Java -----常量池
- 设计模式--单例模式
- Struts2 中测试 action
- java反射详解
- java类的生命周期
- Java反射 getFields()和getDeclaredFields()的区别