package UI;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Cursor;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.Timer;

import tools.image_panel;
import tools.mytool;

public class main_ui extends JFrame implements ActionListener,MouseListener{

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
main_ui mu=new main_ui();
}
Image tileIcon,timebg,main_img, zhu_image,ip3_image,ip4_image,ip5_image,ip6_image,ip7_image,ip8_image,ip9_image;
JMenuBar jmb;
JMenu jm1,jm2,jm3,jm4,jm5,jm6;
JMenuItem jmm1,jmm2,jmm3,jmm4,jmm5;

ImageIcon jm1_icon1,jm1_icon2,jm1_icon3,jm1_icon4,jm1_icon5;
JToolBar jtb;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9,jb10;
JPanel jp1,jp2,jp3,jp4,jp5,jp6,jp7,jp8,jp9;
JLabel timenow,jp6_1,jp6_2,jp6_3,jp6_4,jp6_5,jp6_6,jp6_7,jp6_8,jp8_1,jp8_2;
Timer time;
image_panel ip2;
CardLayout cl,cl2;
JSplitPane jsp1;
Cursor cursor;
public main_ui() throws IOException {

//创建一级菜单
jmb=new JMenuBar();

jm1=new JMenu("系统管理");
jm1.setFont(mytool.f1);
jm1_icon1=new ImageIcon("image/a7.png");
jmm1=new JMenuItem("切换用户",jm1_icon1);
jmm1.setFont(mytool.f2);
jmm2=new JMenuItem("切换到收款页面",jm1_icon1);
jmm2.setFont(mytool.f2);
jmm3=new JMenuItem("登陆管理",jm1_icon1);
jmm3.setFont(mytool.f2);
jmm4=new JMenuItem("万年历",jm1_icon1);
jmm4.setFont(mytool.f2);
jmm5=new JMenuItem("退出",jm1_icon1);
jmm5.setFont(mytool.f2);
jm1.add(jmm1);jm1.add(jmm2);
jm1.add(jmm3);jm1.add(jmm4);
jm1.add(jmm5);

jm2=new JMenu("人事管理");
jm2.setFont(mytool.f1);
jm3=new JMenu("菜单服务");
jm3.setFont(mytool.f1);
jm4=new JMenu("报表统计");
jm4.setFont(mytool.f1);
jm5=new JMenu("成本及库房");
jm5.setFont(mytool.f1);
jm6=new JMenu("帮助");
jm6.setFont(mytool.f1);

jmb.add(jm1);jmb.add(jm2);
jmb.add(jm3);jmb.add(jm4);
jmb.add(jm5);jmb.add(jm6);

//创建工具栏

jtb=new JToolBar();
jtb.setFloatable(false);
jm1_icon2=new ImageIcon("image/a8.png");
jb1=new JButton(jm1_icon2);
jb2=new JButton(jm1_icon2);
jb3=new JButton(jm1_icon2);
jb4=new JButton(jm1_icon2);
jb5=new JButton(jm1_icon2);
jb6=new JButton(jm1_icon2);
jb7=new JButton(jm1_icon2);
jb8=new JButton(jm1_icon2);
jb9=new JButton(jm1_icon2);
jb10=new JButton(jm1_icon2);
jtb.add(jb1);jtb.add(jb2);
jtb.add(jb3);jtb.add(jb4);
jtb.add(jb5);jtb.add(jb6);
jtb.add(jb7);jtb.add(jb8);
jtb.add(jb9);jtb.add(jb10);

//处理中间布局
cursor=new Cursor(Cursor.HAND_CURSOR);
jp6=new JPanel(new BorderLayout());
try {
main_img=ImageIO.read(new File("image/a12.jpg"));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ip2=new image_panel(main_img);
ip2.setLayout(new GridLayout(8,1));

jp6_1=new JLabel("餐 饮 管 理",new ImageIcon("image/a8.png"),0);
jp6_1.setFont(mytool.f3);
ip2.add(jp6_1);
jp6_2=new JLabel("登 陆 管 理",new ImageIcon("image/a8.png"),0);
jp6_2.setFont(mytool.f3);
jp6_2.addMouseListener(this);
jp6_2.setCursor(cursor);
jp6_2.setEnabled(false);
ip2.add(jp6_2);
jp6_3=new JLabel("人 事 管 理",new ImageIcon("image/a8.png"),0);
jp6_3.setFont(mytool.f3);
jp6_3.addMouseListener(this);
jp6_3.setCursor(cursor);
jp6_3.setEnabled(false);
ip2.add(jp6_3);
jp6_4=new JLabel("菜 谱 价 格",new ImageIcon("image/a8.png"),0);
jp6_4.setFont(mytool.f3);
jp6_4.addMouseListener(this);
jp6_4.setCursor(cursor);
jp6_4.setEnabled(false);
ip2.add(jp6_4);
jp6_5=new JLabel("报 表 统 计",new ImageIcon("image/a8.png"),0);
jp6_5.setFont(mytool.f3);
jp6_5.addMouseListener(this);
jp6_5.setCursor(cursor);
jp6_5.setEnabled(false);
ip2.add(jp6_5);
jp6_6=new JLabel("成本及库 房",new ImageIcon("image/a8.png"),0);
jp6_6.setFont(mytool.f3);
jp6_6.addMouseListener(this);
jp6_6.setCursor(cursor);
jp6_6.setEnabled(false);
ip2.add(jp6_6);
jp6_7=new JLabel("系 统 设 置",new ImageIcon("image/a8.png"),0);
jp6_7.setFont(mytool.f3);
jp6_7.addMouseListener(this);
jp6_7.setCursor(cursor);
jp6_7.setEnabled(false);
ip2.add(jp6_7);
jp6_8=new JLabel("动 画 帮 助",new ImageIcon("image/a8.png"),0);
jp6_8.setFont(mytool.f3);
jp6_8.addMouseListener(this);
jp6_8.setCursor(cursor);
jp6_8.setEnabled(false);
ip2.add(jp6_8);
jp6.add(ip2);

jp7=new JPanel(new BorderLayout());
cl=new CardLayout();
jp8=new JPanel(cl);
jp8_1=new JLabel(new ImageIcon("image/a16.png"));
jp8_2=new JLabel(new ImageIcon("image/a16.png"));
jp8.add(jp8_1,"0");
jp8.add(jp8_2,"1");

cl2=new CardLayout();
jp9=new JPanel(cl2);
try {
zhu_image=ImageIO.read(new File("image/a17.jpg"));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

ip3_image=ImageIO.read(new File("image/j1.jpg"));
ip4_image=ImageIO.read(new File("image/j2.jpg"));
ip5_image=ImageIO.read(new File("image/j3.jpg"));
ip6_image=ImageIO.read(new File("image/j4.jpg"));
ip7_image=ImageIO.read(new File("image/j5.jpg"));
ip8_image=ImageIO.read(new File("image/j6.jpg"));
ip9_image=ImageIO.read(new File("image/j7.jpg"));

image_panel ip3=new image_panel(zhu_image);
image_panel ip4=new image_panel(ip4_image);
image_panel ip5=new image_panel(ip5_image);
image_panel ip6=new image_panel(ip6_image);
image_panel ip7=new image_panel(ip7_image);
image_panel ip8=new image_panel(ip8_image);
image_panel ip9=new image_panel(ip9_image);
image_panel ip10=new image_panel(ip3_image);

//image_panel ip10=new image_panel(zhu_image);
jp9.add(ip3,"0");
jp9.add(ip4,"1");
EmpInfo emp=new EmpInfo();
//jp9.add(ip5,"2");
jp9.add(emp,"2");
jp9.add(ip6,"3");
jp9.add(ip7,"4");
jp9.add(ip8,"5");
jp9.add(ip9,"6");
jp9.add(ip10,"7");

jp7.add(jp8,"West");
jp7.add(jp9,"Center");
//做一个拆分窗口,
jsp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,jp6,jp7);
jsp1.setDividerLocation(150);
jsp1.setDividerSize(0);
//状态栏
jp5=new JPanel(new BorderLayout());

time=new Timer(1000,this);//每隔1s触发actionperformed
time.start();
timenow=new JLabel(Calendar.getInstance().getTime().toGMTString()+" ");
timenow.setFont(mytool.f1);
try {
timebg=ImageIO.read(new File("image/a10.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
image_panel ip1=new image_panel(timebg);
ip1.setLayout(new BorderLayout());
ip1.add(timenow,"East");

jp5.add(ip1);

try {
tileIcon=ImageIO.read(new File("image/a1.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int w=Toolkit.getDefaultToolkit().getScreenSize().width;
int h=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setJMenuBar(jmb);
this.add(jtb,"North");
this.add(jsp1);
this.add(jp5,"South");
this.setIconImage(tileIcon);
this.setTitle("满汉楼餐饮管理系统");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(w,h-45);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
this.timenow.setText(Calendar.getInstance().getTime().toString()+" ");
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jp6_2){

cl2.show(jp9, "1");
}
else if(e.getSource()==jp6_3){

cl2.show(jp9, "2");
}
else if(e.getSource()==jp6_4){

cl2.show(jp9, "3");
}
else if(e.getSource()==jp6_5){

cl2.show(jp9, "4");
}
else if(e.getSource()==jp6_6){

cl2.show(jp9, "5");
}
else if(e.getSource()==jp6_7){

cl2.show(jp9, "6");
}
else if(e.getSource()==jp6_8){

cl2.show(jp9, "7");
}
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub

}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jp6_2){

jp6_2.setEnabled(true);

}
else if(e.getSource()==jp6_3){
jp6_3.setEnabled(true);
}
else if(e.getSource()==jp6_4){
jp6_4.setEnabled(true);
}
else if(e.getSource()==jp6_5){
jp6_5.setEnabled(true);
}
else if(e.getSource()==jp6_6){
jp6_6.setEnabled(true);
}
else if(e.getSource()==jp6_7){
jp6_7.setEnabled(true);
}
else if(e.getSource()==jp6_8){
jp6_8.setEnabled(true);
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jp6_2){

jp6_2.setEnabled(false);

}
else if(e.getSource()==jp6_3){
jp6_3.setEnabled(false);
}
else if(e.getSource()==jp6_4){
jp6_4.setEnabled(false);
}
else if(e.getSource()==jp6_5){
jp6_5.setEnabled(false);
}
else if(e.getSource()==jp6_6){
jp6_6.setEnabled(false);
}
else if(e.getSource()==jp6_7){
jp6_7.setEnabled(false);
}
else if(e.getSource()==jp6_8){
jp6_8.setEnabled(false);
}

}

}

使用swing构建一个界面(包含flow ,Border,Grid,card ,scroll布局)的更多相关文章

  1. 初识Dash -- 构建一个人人都能够轻松上手的界面,操控数据和可视化

    从事数据科学工作,少不了使用Pandas.scikit-learn这些Python生态系统中的利器,还有就是控制工作流的Jupyter Notebooks,没的说,你和同事都爱用.但是,要想将工作成果 ...

  2. java swing 制作一个登陆界面,亲测有效

    一.介绍 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT ...

  3. 快速构建App界面的框架(●'◡'●) -----SalutJs

    前言 卤煮在公司之初接触到的是一个微信APP应用.前端技术采用的是Backbone+zepto等小型JS类库.在项目开发之初,这类中小型的项目采用这两种库可以满足基本的需求.然而,随着迭代的更新和业务 ...

  4. [转]快速构建App界面的框架(●'◡'●) -----SalutJs

    前言 卤煮在公司之初接触到的是一个微信APP应用.前端技术采用的是Backbone+zepto等小型JS类库.在项目开发之初,这类中小型的项目采用这两种库可以满足基本的需求.然而,随着迭代的更新和业务 ...

  5. 快速构建一个使用axios的vue应用程序(转)

    英文原文:https://www.sitepoint.com/fetching-data-third-party-api-vue-axios/ 译文:https://segmentfault.com/ ...

  6. Swing 是一个为Java设计的GUI工具包

    Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...

  7. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

  8. 利用angular4和nodejs-express构建一个简单的网站(五)—用户的注册和登录-HttpClient

    上一节简单介绍了一下利用angular构建的主路由模块,根据上一节的介绍,主页面加载时直接跳转到用户管理界面,下面就来介绍一下用户管理模块.启动应用后,初始界面应该是这样的: 用户管理模块(users ...

  9. 循序渐进BootstrapVue,开发公司门户网站(1)---基于Bootstrap网站模板构建组件界面

    在前面随笔<使用BootstrapVue相关组件,构建Vue项目界面>概括性的介绍了BootstrapVue的使用过程,其实选用这个主要就是希望能够用来构建一些公司门户网站的内容,毕竟基于 ...

随机推荐

  1. Sourse Insight使用教程及常见的问题解决办法

    1.下载安装 2.创建项目new project(注意不是file-->new ),而是project-->new project,输入项目名称和密码. 3.添加文件,其实就是将你的整个项 ...

  2. linux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号

    应用程序 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include < ...

  3. JDK源码 - ArrayList (基于1.7)

    前言   推荐一位大牛的博客: https://blog.csdn.net/eson_15/article/details/51121833 我基本都是看的他的源码分析,刚开始如果直接看jdk源码可能 ...

  4. EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储

    step1: 三台web服务器环境配置:iptables -F; setenforce 0 关闭防火墙:关闭setlinux step2:三台web服务器 装软件 step3: 主机修改配置文件:vi ...

  5. Python编程-绑定方法、软件开发

    一.绑定方法与非绑定方法 1.绑定方法 绑定给谁,谁来调用就自动将它本身当作第一个参数传入 (1)绑定到类的方法:用classmethod装饰器装饰的方法. 为类量身定制 类.boud_method( ...

  6. this对象解析

    this在js中有着非常广泛的应用,但其所指的对象也常常让人摸不着头脑,简而言之: this指的就是调用函数的对象,最常见的莫过以下几种 1.直接使用函数,则为window对象 function a( ...

  7. Redis 高级实用特性

    1.安全性 设置客户端连接后进行任何其他操作前先验证密码. 因为Redis速度相当快,所以在一台比较好的服务器下,一个外部用户可以在一秒钟进行150K次的密码尝试,这意味着需要指定一个非常强大的密码来 ...

  8. 算法总结之 数组的partition调整 三个值的升序

    给定一个数组arr, 其中只可能有 0,1,2三个值,请实现arr排序 另一种问法: 有一个数组,只有红 蓝 黄 球,请事先红球全放在数组的左边,蓝球放中间,黄球放右边 另一种问法: 有一个数组,再给 ...

  9. Shell中数学计算/运算

    shell中的赋值和操作默认都是字符串处理. 1)使用let(只能进行整数运算)var=1let "var+=1"echo $var输出结果为2 注意:a)let几乎支持所有的运算 ...

  10. R语言笔记003——set.seed()函数

    set.seed()函数 set.seed()设定生成随机数的种子,让样本可重复. > x<-rnorm() # 生成4个随机数 > x [] 0.6599492 0.5881863 ...