⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainapp.java

📁 参考了JAVA方面MIS系统开发的书籍做的一个 电力收费的系统,包里面是可以直接运行的JAR文件了...SRC是源文件可一些需要的包...数据库是用的MSQLserver2000,"java程序数据
💻 JAVA
字号:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.sql.*;
import java.util.*;
import edu.njust.cs.*;
class MainApp extends JFrame{
	//系统启动时的等待画面
	private JFrame splashScreen=null;		
	//收费结算菜单
	private JMenu JSSFMenu=new JMenu("结算收费(J)");	
	private JMenuItem DBCZItem=new JMenuItem("电表出帐/审核(A)");
	private JMenuItem DBJFItem=new JMenuItem("电表缴费(F)");	
	//基础资料菜单
	private JMenu JCZLMenu=new JMenu("基础资料(Z)");		
	private JMenuItem GYItem=new JMenuItem("雇员资料(G)");
	private JMenuItem CBBItem=new JMenuItem("抄表班(C)");
	private JMenuItem SFBItem=new JMenuItem("收费班(S)");
	private JMenuItem FLItem=new JMenuItem("费率(F)");
	private JMenuItem DBItem=new JMenuItem("电表资料(D)");	
	//设置菜单
	private JMenu SZMenu=new JMenu("设置(C)");		
	private JMenuItem SysConfigItem=new JMenuItem("系统参数设置...(S)");	
	//帮助菜单
	private JMenu HelpMenu=new JMenu("帮助(H)");		
	JMenuItem aboutItem=new JMenuItem("关于本程序...(A)");		
	//内容窗格
	private Container contentPane;
	//当前内容窗格中的面板
	private JPanel selectedPanel=null;
	//状态信息
	JLabel labStatusContent=null;  
	//登录用户
	private JLabel labUserContent=null;  	
	//数据库连接
	 Connection con=null;
	//参数信息
	private Properties prop=null;	
	public MainApp(){
		SwingUtilities.invokeLater(new Runnable(){
				public void run(){
					showSplashScreen();
				}		
			});
		//创建菜单
		setIconImage(new ImageIcon("image/title20.jpg").getImage());	
		this.setTitle("结算收费演示系统");
		contentPane=getContentPane();			
		//创建菜单
		constructMenu();		
		//创建状态条
		constructStatusPanel();		
		//读入系统参数
		prop=SqlUtil.loadProperty("config/config.properties");		
		//建立数据库连接
		connectToDB();	
		//验证用户
		login();				
		//添加导航面板
		if(con!=null)
			setSelectedPanel(new NavigatorPanel(this));		
		SwingUtilities.invokeLater(new Runnable(){
				public void run(){
					hideSplashScreen();
				}			
			});			
	}
	//连接到数据库
	public void  connectToDB(){
		try{
			con=SqlUtil.acquireConnection(prop.getProperty("DB_IP"),
										  prop.getProperty("DB_PORT"),
										  prop.getProperty("DB_NAME"),
										  prop.getProperty("DB_USER_NAME"),
										  prop.getProperty("DB_USER_PWD"));
		}catch(Exception e){
			con=null;
			this.labStatusContent.setText("不能连接到数据库!"+
										  "请修改系统设置后重新启动该程序. "
										  +e.toString());
			return;
		}
	}
	public void showSplashScreen(){  
		//取得屏幕大小
     	Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
     	ImageIcon image=null;
		try{
			image=new ImageIcon("image/splash.jpg");          	
        }catch(Exception e){
			System.out.println(e);
		}
        JLabel splashLabel = new JLabel(image);
        splashScreen = new JFrame();
		//去掉JFrame的装饰边框
		splashScreen.setUndecorated(true);
        splashScreen.getContentPane().add(splashLabel);
	    splashScreen.pack();
	    int width=image.getImage().getWidth(null);
	    int height=image.getImage().getHeight(null);
		//快闪屏幕居中
	    splashScreen.setLocation(new Point(((int)d.getWidth()-width)/2,
										   ((int)d.getHeight()-height)/2));
	    splashScreen.setVisible(true);         
     }
     public void hideSplashScreen(){
       splashScreen.setVisible(false); 
       splashScreen=null;
     }
	 
	public void constructMenu(){		 
		//构建菜单
		JMenuBar menuBar=new JMenuBar();
		//收费结算菜单----------------BEGIN		
		JSSFMenu.setMnemonic(KeyEvent.VK_J);	
		     //电表出帐
		DBCZItem.setMnemonic(KeyEvent.VK_A);	
		DBCZItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new DBCZPanel(MainApp.this,con));
				}
			});		
		JSSFMenu.add(DBCZItem);
		    //电表缴费
		DBJFItem.setMnemonic(KeyEvent.VK_F);	
		DBJFItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new DBSFPanel(MainApp.this,con));
				}
			});		
		JSSFMenu.add(DBJFItem);		
		menuBar.add(JSSFMenu);		
		//收费结算菜单----------------END		
		//基础资料菜单----------------BEGIN		
		JCZLMenu.setMnemonic(KeyEvent.VK_Z);	
		    //雇员
		GYItem.setMnemonic(KeyEvent.VK_G);
		GYItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new GYPanel(MainApp.this,con));
				}
			});
		JCZLMenu.add(GYItem);
		     //分隔线
		JCZLMenu.addSeparator();
		     //抄表班
		CBBItem.setMnemonic(KeyEvent.VK_C);
		CBBItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new CBBPanel(MainApp.this,con));
				}
			});
		JCZLMenu.add(CBBItem);
		     //收费班
		SFBItem.setMnemonic(KeyEvent.VK_S);
		SFBItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new SFBPanel(MainApp.this,con));
				}
			});
		JCZLMenu.add(SFBItem);
		     //费率
		FLItem.setMnemonic(KeyEvent.VK_F);
		FLItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new FLPanel(MainApp.this,con));
				}
			});
		JCZLMenu.add(FLItem);
		      //分隔线
		JCZLMenu.addSeparator();
		      //电表
		DBItem.setMnemonic(KeyEvent.VK_D);
		DBItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					MainApp.this.setSelectedPanel(new DBPanel(MainApp.this,con));
				}
			});
		JCZLMenu.add(DBItem);		
		menuBar.add(JCZLMenu);		
		//设置菜单-------------BEGIN
	    SZMenu.setMnemonic(KeyEvent.VK_C);
		     //系统参数设置
		SysConfigItem.setMnemonic(KeyEvent.VK_S); 
		SysConfigItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					new ConfigDialog(MainApp.this,"参数设置",true).show();
				}			
			});
		SZMenu.add(SysConfigItem);		
		menuBar.add(SZMenu);
		//设置菜单-------------END
	    //帮助菜单-------------BEGIN
	    HelpMenu.setMnemonic(KeyEvent.VK_H);
		//关于
		aboutItem.setMnemonic(KeyEvent.VK_A); 
		aboutItem.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					new About(MainApp.this,"关于",true).show();
				}			
			});
		HelpMenu.add(aboutItem);
		menuBar.add(HelpMenu);	
		//帮助菜单-----------END
		setJMenuBar(menuBar);		
	}	
	 //创建状态条
	public void constructStatusPanel(){
		JPanel statusPanel=new JPanel();
		Border loweredBevelBorder=BorderFactory.createLoweredBevelBorder();		
		statusPanel.setLayout(new GridBagLayout());
		JLabel labStatus=new JLabel(" 提示信息 ");
		labStatusContent=new JLabel();
		JLabel labUser=new JLabel(" 用户名 ");
		labUserContent=new JLabel();
		labUserContent.setPreferredSize(new Dimension(90,3));
		labUser.setBorder(loweredBevelBorder);
		labUserContent.setBorder(loweredBevelBorder);	
		labStatus.setBorder(loweredBevelBorder);
		labStatusContent.setBorder(loweredBevelBorder);					
		LayoutUtil.add(statusPanel,GridBagConstraints.NONE,
					   GridBagConstraints.CENTER,0,0,0,0,1,1,labStatus);
		LayoutUtil.add(statusPanel,GridBagConstraints.BOTH,
					   GridBagConstraints.CENTER,100,100,1,0,1,1,labStatusContent);
		LayoutUtil.add(statusPanel,GridBagConstraints.NONE,
					   GridBagConstraints.CENTER,0,0,2,0,1,1,labUser);
		LayoutUtil.add(statusPanel,GridBagConstraints.VERTICAL,
					   GridBagConstraints.CENTER,0,100,3,0,1,1,labUserContent);					
		contentPane.add(statusPanel,BorderLayout.SOUTH);
	}		
	public void setSelectedPanel(JPanel p){
		if(selectedPanel!=null)
			contentPane.remove(selectedPanel);
		selectedPanel=p;
		contentPane.add(selectedPanel,"Center");
		this.validate();
	}	
	 public void login(){
		 int count=0;
		  while(count++<4){//最多有3次输入机会
			 if(count==4)
				 System.exit(-1);
			 LoginDialog lg=new LoginDialog(this.splashScreen,"登录",true);
			 lg.show();				
			 lg.toFront();
			 if(lg.getActionCode()==LoginDialog.OK){
				 if(!isValidLogin(lg.getUser(),lg.getPwd()))
					 JOptionPane.showMessageDialog(this,
												   "错误的用户名或密码!",
												   "提示",
												   JOptionPane.INFORMATION_MESSAGE);							 
				 else{   //成功登录
					 break;
				 }
			 }
			 else
				 System.exit(-1);
		 }
	 }
	 //判断用户和密码是否正确
	public boolean isValidLogin(String u,String p){
		boolean flag=true;
		try{
			PreparedStatement sql=con.prepareStatement("select * from UserT where UserID=? AND Pwd=?");
			sql.setString(1,u);
			sql.setString(2,p);
			ResultSet rs=sql.executeQuery();
			if(rs.next())  flag=true;
			else  flag=false;			
			rs.close();
		}catch(Exception e){
			System.out.println(e);
			flag=false;
		}
		return flag;
	}
    public static void main(String []args){
		Font font=new Font("楷体", 0, 12);
		SetFont.setFont(font);//设置全局字体
		MainApp ma=new MainApp();
		ma.setDefaultCloseOperation(EXIT_ON_CLOSE);
		ma.setSize(600,400);	//设置主画面初始大小		
		ma.show();
		//满屏显示
		ma.setExtendedState(MAXIMIZED_BOTH); 
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -