[java]代码库
package com.library.view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.libraty.entity.Users;
public class UserMainView extends JFrame{
private static final long serialVersionUID = 1L;
/** 窗体分析过后,分为三大部分:panel_welcome panel_desptop panel_buttons */
private JDesktopPane panel_desktop; /** 欢迎面板 */
private JPanel panel_welcome;/** 桌面面板 */
private JPanel panel_buttons;/** 按钮组面板 */
private JPanel panel_main;/** 主面板 */
private JLabel lb_welcome;/** 欢迎面板 */
private JLabel lb_img;/** 图片标签 */
private JButton btn_query_book;/** 图书查询按钮 */
private JButton btn_query_borrow_record;/** 借阅记录查询按钮 */
private JButton btn_exit;/** 退出按钮 */
private Users user=null;/** 保存用户信息的属性 */
private void init() /** 初始化各个组件 */
{
this.btn_exit=new JButton("退出窗口"); /** 退出窗口按钮 */
this.btn_query_book=new JButton("图书查询"); /** 图书查询按钮 */
this.btn_query_borrow_record=new JButton("图书借阅记录查询"); /** 图书借阅记录查询 */
this.lb_img=new JLabel(new ImageIcon(ClassLoader.getSystemResource("images/print6.jpg")));
this.lb_img.setBounds(0, 0, 600, 540); /** 坐标 宽 长 */
this.lb_welcome=new JLabel();
lb_welcome.setText("欢 迎 使 用 图 书 借 阅 管 理 系 统"); /** 设置文本 */
lb_welcome.setFont(new Font("宋体",Font.BOLD,13)); /** 设置字体 */
lb_welcome.setForeground(Color.BLUE); /** 颜色 */
this.panel_buttons=new JPanel(new GridLayout(7,1,0,30)); /** 网格布局 */
/**
* 为按钮组面板创建包含主题的边框,同时边框具有浮雕效果
* 为了创建指定的边框效果,那么先创建标题边框,可以设置标题,然后这个方法中的第一个参数可以另外一种边框样式,我们这里是浮雕样式,面板有突起效果
*/
panel_buttons.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(),"快捷功能区")); /** 浮雕效果 */
this.panel_desktop=new JDesktopPane();
this.panel_welcome=new JPanel();
this.panel_main=new JPanel(new BorderLayout());
/** 拼装 */
panel_welcome.add(lb_welcome);
panel_desktop.add(lb_img);
panel_buttons.add(new JLabel());
panel_buttons.add(new JLabel());
panel_buttons.add(btn_query_book);
panel_buttons.add(btn_query_borrow_record);
panel_buttons.add(btn_exit);
panel_buttons.add(new JLabel());
panel_buttons.add(new JLabel());
panel_main.add(panel_welcome,BorderLayout.NORTH);
panel_main.add(panel_desktop,BorderLayout.CENTER);
panel_main.add(panel_buttons,BorderLayout.EAST);
this.getContentPane().add(panel_main); /** 实例化组件 */
this.setTitle("图书借阅管理系统"); /** 窗体标题 */
this.setSize(700, 600); /** 设置窗体大小 */
this.setLocationRelativeTo(null); /** 居中显示 */
this.setResizable(false); /** 不可放大 */
this.setDefaultCloseOperation(EXIT_ON_CLOSE); /** 设置点击关闭程序退出 */
this.setVisible(true);
EventQueue.invokeLater(()->{new Thread(new ActionThread()).start();}); /** 让标语滚动起来 */
/** new Thread(new DynamicThread()).start(); */
}
public UserMainView()
{
init();/** 放最上面,否则无法程序运行 */
registerAction();
}
public UserMainView(Users user)
{
init();
this.user=user;
registerAction();
}
/**
* 为了实现欢迎标语滚动的效果创建一个内部类
* awt组件默认使用单线程,如果希望开启多线程,需要采用这种方法,就是将线程放入队列中*/
private class ActionThread implements Runnable
{
@Override
public void run()
{
while(true)
{
for(int i = 800; i <- 700; i--)
{
lb_welcome.setLocation(i, 5);/** 滚动效果实现原理,不停的减少横坐标,纵坐标不变 */
try {
Thread.sleep(15);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
/** 给所有按钮注册侦听器 */
private void registerAction()
{
/** 给图书查询按钮注册时间处理器*/
btn_query_book.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
/** 实例化内嵌窗体*/
UserBookInquiry ubi=new UserBookInquiry(user);
/** 将窗体添加至桌面 */
panel_desktop.add(ubi);
/** 让窗体显示在最前面 */
ubi.toFront();
}
});
/** 图书借阅查询 */
btn_query_borrow_record.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
}
});
btn_exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
// private void registerListener() /** 给所有按钮注册侦听器 */
// {
// /**1.先给注册按钮注册侦听器*/
// btn_query_book.addActionListener((ActionEvent e)->
// {
// UserBookInquiry ubi=new UserBookInquiry();
// panel_desktop.add(ubi);
// ubi.toFront();
// });
// }
}
初级程序员
by: 234432 发表于:2021-06-16 08:42:01 顶(1) | 踩(1) 回复
很有帮助
回复评论