JAVA GUI學習 繼續

WinnocentLY發表於2018-10-06

之前的登入介面並沒有完成 因此把監聽部分補上

	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand()=="登入")
		{
			password_check();
			if("".equals(username_text.getText()))
			{
				JOptionPane.showMessageDialog(null, "使用者名稱不可為空!");
			}
			else if("".equals(String.valueOf(password_text.getPassword())))
			{
				JOptionPane.showMessageDialog(null, "密碼不可為空!");
			}
			else if(!flag_login)
			{
				JOptionPane.showMessageDialog(null, "使用者名稱或密碼錯誤!");
			}
			username_text.setText("");//保證安全,使用者名稱和密碼設0
			password_text.setText("");
		}

		if(e.getActionCommand()=="註冊")
		{
			new GUI_register();//開註冊介面
		}
		if(flag_login==true)
		{
			System.out.println("跳轉中");//無意義,寫著玩
			new GUI_select();//開選題介面
			username_text.setText("");
			password_text.setText("");
			flag_login=false;
			login_frame.dispose();
			//跳轉至選擇介面
		}
	}
	

 

總共5個介面+一個自動出題,重複部分很多,因此只拿出一部分來

 

密碼核對:每一行為一組使用者名稱和密碼,以分號分隔,建立檔案,逐行讀取核對即可

使用者查重等與此近似

由於是小作業因此只用TXT儲存


	void password_check()
	{
		try
		{
			File autopro_dir=new File("D:\\autopro");
			if(!autopro_dir.exists())
			{
				autopro_dir.mkdir();
			}
			File password_dir=new File("D:\\autopro\\password");
			if(!password_dir.exists())
			{
				password_dir.mkdir();
			}
			File password_file=new File("D:\\autopro\\password\\password.txt");
			if(!password_file.exists())
			{
				password_file.createNewFile();
			}
			//以上password檔案生成
			
			String password_path;
			password_path="D:\\autopro\\password\\password.txt";
			InputStreamReader password_reader=new InputStreamReader(new FileInputStream(password_path));
			BufferedReader password_br=new BufferedReader(password_reader);
			String password_line="";
			String[] password_unp=new String[2];//使用者名稱和密碼
			while((password_line = password_br.readLine()) != null)
			{
				password_unp=password_line.split(";");//以;分隔,因此密碼中不可以有;
				if(password_unp[0].equals(username_text.getText()))
				{
					if(password_unp[1].equals(String.valueOf(password_text.getPassword())))
					{
						username_login=username_text.getText();
						password_login=String.valueOf(password_text.getPassword());
						flag_login=true;
					}
				}
			}
			password_br.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
			System.out.println("Password check failed.");
		}
	}

 

字型設定:


		Font font = new Font(Font.DIALOG, Font.BOLD, 20);
		title_label.setFont(font);

 

 

關閉頁面和下拉選項:


		select_frame.dispose();//關閉頁面

        grade_choice=new Choice();//下拉選項
		grade_choice.add("小學");
		grade_choice.add("初中");
		grade_choice.add("高中");
		grade_choice.setBounds(170, 88, 60, 20);

 JRadioButton組:


		choice1=new JRadioButton();
		choice2=new JRadioButton();
		choice3=new JRadioButton();
		choice4=new JRadioButton();
        choice_group=new ButtonGroup(); 
        choice_group.add(choice1);
        choice1.setBounds(80, 130, 20, 20);
        choice_group.add(choice2);
        choice2.setBounds(180, 130, 20, 20);
        choice_group.add(choice3);
        choice3.setBounds(280, 130, 20, 20);
        choice_group.add(choice4);
        choice4.setBounds(380, 130, 20, 20);


				choice1.setSelected(false);//設為未選中
				choice2.setSelected(false);
				choice3.setSelected(false);
				choice4.setSelected(false);
				choice_group.clearSelection();

        choice1.isSelected()//此按鈕是否被選中,boolean型

//更改標籤文字				choice1_label.setText(String.valueOf(String.valueOf(choice_output[question_now][0])));
				choice2_label.setText(String.valueOf(String.valueOf(choice_output[question_now][1])));
				choice3_label.setText(String.valueOf(String.valueOf(choice_output[question_now][2])));
				choice4_label.setText(String.valueOf(String.valueOf(choice_output[question_now][3])));

 由於button不支援settext,所以改用JButton來實現更改文字


	JButton button_previous;
	JButton button_next;

		button_previous=new JButton("上一題");    
		button_next=new JButton("下一題");
		button_previous.addActionListener(this);
		button_previous.setBounds(160, 170, 80, 20);
		
		button_next.addActionListener(this);
		button_next.setBounds(280, 170, 80, 20);

			button_next.setText("完成");

 就這點 = =

效果截圖:

醜吧,醜就對了,溜了,告辭

相關文章