๐จ๐ผโ๐ป๊ฐ๋ฐ/์๋ฐ
                
              ์๋ฐ - PassMaker (๋น๋ฐ๋ฒํธ ์ฌ์  ๋ง๋๋ ๋๊ตฌ)
                Janger
                 2021. 12. 15. 10:37
              
              
                    
        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