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