๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป๊ฐœ๋ฐœ/์ž๋ฐ”

์ž๋ฐ” - PassMaker (๋น„๋ฐ€๋ฒˆํ˜ธ ์‚ฌ์ „ ๋งŒ๋“œ๋Š” ๋„๊ตฌ)

by Janger 2021. 12. 15.
728x90

์ž๋ฐ” Swing์„ ์—ฐ์Šตํ• ๊ฒธ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค.

์ง์ž‘์ด ๊ฐ€๋Š” ๋‹จ์–ด๋ฅผ ๋„ฃ๊ณ  ์ˆซ์ž ๋ฒ”์œ„๋ฅผ ์ •ํ•œ ํ›„ ๋ณ€ํ™˜์„ ๋ˆ„๋ฅด๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ์‚ฌ์ „์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ„๋‹จํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋„๊ตฌ

 

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.StringTokenizer;


public class Main extends JFrame{
	
	DefaultListModel input_passwords = new DefaultListModel();
	
	
	JTextField inputArea = null;
	JTextField numberRange = null;
	JTextArea outList = null;

	boolean isSpecialSymbolCheck = false;


	class MakePasswords{


		public class ThreadRun extends Thread{

		public ArrayList<Integer> parsingRange(){
			ArrayList<Integer> range = new ArrayList<Integer>();
			
			
			String numRange = numberRange.getText();
			numRange = numRange.replaceAll(" ", "");
			StringTokenizer st = new StringTokenizer(numRange, "-");
			
			int start = Integer.parseInt( st.nextToken() );
			int end = Integer.parseInt( st.nextToken() );

			range.add(start);
			range.add(end);

			
			return (range);
		}

			public void run(){


					String sps = "!@#$%^&*()_+-=";

					if( isSpecialSymbolCheck ){
						ArrayList range = this.parsingRange();
						int start = (int) range.get(0);
						int end = (int) range.get(1);

						for( int i=0; i<input_passwords.getSize(); i++ ){

							for( int j=start; j<=end; j++ ){ 
								
								outList.setText( outList.getText() + input_passwords.get(i) + "" + j + "\n" );
								for( int x=0; x<sps.length(); x++ ){
									outList.setText( outList.getText() + input_passwords.get(i) + "" + j + "" + sps.charAt(x) + "\n" );
								}
							}					
									

						}
					} else {
						ArrayList range = this.parsingRange();
						int start = (int) range.get(0);
						int end = (int) range.get(1);

						for( int i=0; i<input_passwords.getSize(); i++ ){

							for( int j=start; j<=end; j++ ){ 
								outList.setText( outList.getText() + input_passwords.get(i) + "" + j + "\n" );
							}					
									

						}
					}

					

			}
		}
	
		public void run(){
			
			ThreadRun t = new ThreadRun();
			t.run();

			

		}



	}


	class addBtn extends JButton{
		public addBtn(){
			super("์ถ”๊ฐ€");
		}
	}

	class addList extends JList{
		public addList(){
			super( input_passwords );
		}
	}



	private class AddPassListener implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			String content = inputArea.getText() ;
			input_passwords.addElement( content );

		}
	}

	private class resetListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e){
			System.out.println("์ดˆ๊ธฐํ™”");
			inputArea.setText("");
			numberRange.setText("0-1234");
			outList.setText("");
			input_passwords.removeAllElements();
		}
	}
	
	private class MyKeyListener extends KeyAdapter{

		public void keyPressed(KeyEvent e){
			  if(e.getKeyCode() == KeyEvent.VK_ENTER) {
				String content = inputArea.getText() ;
				input_passwords.addElement( content );				
			   }
		}
	}


	private class checkBoxListener implements ItemListener{
		public void itemStateChanged(ItemEvent e){
			if(e.getStateChange() == ItemEvent.SELECTED){
				isSpecialSymbolCheck = true;
			} else {
				isSpecialSymbolCheck = false;
			}
		}
	}


	private class convertBtnListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e){
			MakePasswords mp = new MakePasswords();
			mp.run();
		}
	}

	private class saveBtnListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e){
			System.out.println("!!");
		}
	}

	

	Main(){
		super("PassMaker");

		Container c = getContentPane(); 
		c.setLayout( new FlowLayout() );

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



		JMenuBar mb = new JMenuBar();
		
		JMenuItem reset = new JMenuItem("๋ฆฌ์…‹");
		reset.addActionListener( new resetListener() );
		mb.add(reset);
		setJMenuBar(mb);


		inputArea = new JTextField(15);
		inputArea.addKeyListener( new MyKeyListener() );
		inputArea.setFont( new Font("", 1, 18) ); // ํฐํŠธ
		c.add( inputArea );

		JButton ad = new addBtn(); // ๋ฒ„ํŠผ
		ad.addActionListener( new AddPassListener() ); // ๋ฒ„ํŠผ ๋ฆฌ์Šค๋„ˆ
		c.add( ad );
		
		
		JScrollPane jsp = new JScrollPane( new addList() );
		jsp.setPreferredSize(new Dimension(310, 100));
		c.add( jsp );

		c.add( new JLabel("Number range 0 - 9999 ('-'๋กœ ๊ตฌ๋ถ„)") );

		numberRange = new JTextField("0-1234", 15);
		numberRange.setFont( new Font("", 1, 18) ); // ํฐํŠธ
		c.add( numberRange );

		
		JCheckBox specialSymbolCheck = new JCheckBox("๋’ค์— ํŠน์ˆ˜ ๊ธฐํ˜ธ๋ฅผ ์‚ฝ์ž… (!@#$%...)");
		specialSymbolCheck.setFont( new Font("", 1, 14) ); // ํฐํŠธ
		specialSymbolCheck.addItemListener( new checkBoxListener() );
		c.add(specialSymbolCheck);


		outList = new JTextArea();
		JScrollPane jsp2 = new JScrollPane( outList );
		jsp2.setPreferredSize(new Dimension(310, 100));
		c.add( jsp2 );

		
		JButton convertBtn = new JButton("๋ณ€ํ™˜");
		convertBtn.addActionListener( new convertBtnListener() );
		c.add(convertBtn);

		JButton saveBtn = new JButton("์ €์žฅ");
		saveBtn.addActionListener( new saveBtnListener() );
		c.add(saveBtn);

		setSize(350, 420);
		setResizable(false);	
		setVisible(true);
		this.setFocusable(true);
		this.requestFocus();
	}


	public static void main(String []args){
	
		new Main();		

	}

}

 

728x90