*/ * Copyright (c) 2016,煙台大學計算機與控制工程學院 * All rights reserved. * 文件名:text.java * 作者:常軒 * 微信公眾號:Worldhello * 完成日期:2016年12月27日 * 版本號:V1.0 * 程序輸入:無 * 程序輸出:見運行結果 */ /*功能描述: 登錄界面有插入了背景圖片 實現了登錄界面GUI,可以進行 賬號注冊,和賬號登錄,對注冊的賬號用文件進行存儲 */ package com.xuan.main; //登錄界面 import java.awt.Container; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class denglu extends JFrame { //設置一個含有背景圖片的面板 private MyPanel panel; private JLabel lab_zhanghao = new JLabel("賬號:"); private JTextField jta_text = new JTextField(); Font lab = new Font("楷體",1,30); private JLabel lat_password = new JLabel("密碼:"); Font lat = new Font("楷體",1,30); private JPasswordField jtb_text = new JPasswordField(); private JButton btn_register = new JButton("注冊"); private JButton btn_land = new JButton("登陸"); Font btn = new Font("黑體",2,30); public static int pd = 0; public static String ak1, ak2; private Container contentPane = this.getContentPane(); public denglu () { this.setSize(400,267); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setTitle("登陸"); this.setResizable(false); btn_register.addActionListener(new ActionListener() { @SuppressWarnings("deprecation") public void actionPerformed(ActionEvent e) { pd = 1; ak1 = jta_text .getText(); ak2 = jtb_text .getText(); String fileName = "users.dat"; try { FileWriter writer = new FileWriter(fileName,true); BufferedWriter outWriter=new BufferedWriter(writer); outWriter.write("ID:"+ak1+"&&"+"Password:"+ak2); outWriter.newLine(); outWriter.close(); writer.close(); } catch (IOException e1) { e1.printStackTrace(); } jta_text.setText(""); jtb_text.setText(""); JOptionPane.showMessageDialog(null,"注冊成功! 您的用戶名是:"+ak1+"密碼是:"+ ak2); } }); btn_land.addActionListener(new ActionListener() { @SuppressWarnings("deprecation") public void actionPerformed(ActionEvent e) { if(pd==1||pd==0) { File fileName=new File("users.dat"); try{ FileReader inOne=new FileReader(fileName); BufferedReader inTwo=new BufferedReader(inOne); String s=null; int judge=1; while((s=inTwo.readLine())!=null) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("ID:"); stringBuilder.append(jta_text.getText()); stringBuilder.append("&&"); stringBuilder.append("Password:"); stringBuilder.append(jtb_text.getText()); String ak=stringBuilder.toString(); if(s.equals(ak)) { JOptionPane.showMessageDialog(null, "登錄成功!"); jta_text .setText(""); jtb_text .setText(""); judge=0; break; } } inTwo.close(); inOne.close(); if(judge==1) { JOptionPane.showMessageDialog(null,"登陸失敗!檢查賬號密碼是否正確或請注冊后登錄",null,JOptionPane.ERROR_MESSAGE, null); jta_text .setText(""); jtb_text .setText(""); } if(judge==0){ new JMFMediaPlayer("JMF媒體播放器"); //在此處new出新的窗口 dispose(); return; } }catch(IOException event){ JOptionPane.showMessageDialog(null,"系統錯誤"+event,null,JOptionPane.ERROR_MESSAGE, null); } } } }); init(); panel = new MyPanel(); //將所有的組件添加到panel面板中 panel.add(lab_zhanghao); panel.add(lat_password); panel.add(jta_text); panel.add(jtb_text); panel.add(btn_register); panel.add(btn_land); panel.setLayout(null); getContentPane().add(panel); } private void init() { lab_zhanghao.setSize(200,100); lab_zhanghao. setLocation(50,20); lab_zhanghao.setFont(lab); lat_password.setSize(200,100); lat_password.setLocation(50,80); lat_password.setFont(lat); jta_text.setSize(190,30); jta_text.setLocation(160,55); jtb_text.setSize(190,30); jtb_text.setLocation(160,115); btn_register.setSize(120, 40); btn_register.setLocation(60, 180); btn_land.setSize(120, 40); btn_land.setLocation(230, 180); btn_register.setFont(btn); btn_land.setFont(btn); } public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); new denglu().setVisible(true); } } package com.xuan.main; //登錄界面背景 import java.awt.*; import javax.swing.*; //自定義一個面板類 class MyPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); //繪制一張背景圖片 2.jpg是圖片的路徑 自己設定為自己想要添加的圖片 Image image = new ImageIcon("background.jpg").getImage(); g.drawImage(image, 0, 0, this); } }