결성! 카르텔 지옥파티 업데이트

Frame.java

각 버튼/패널 변수명 :

추가 : InsertButton
삭제 : DeleteButton
업데이트 : UpdateButton
검색 : SearchButton
오름차순 : SortUpButton
내림차순:  SortDownButton

추가 시 들어가는 패널 명 : panel1
검색 시 들어가는 패널 명 : panel2

 

반드시 JFrame 클래스의 extends javax.swing.JFrame 뒤에 implements ActionListener 를 추가해야함!!

CustomButton selected = null; 
private void InsertButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here: 
        panel2.removeAll();//패널2 (검색 표시 패널)의 내용을 다 지움. 
        panel2.updateUI(); 
         
        CustomButton btn = new CustomButton(new Student(tf1.getText(),tf2.getText())); //버튼 생성 
        btn.addActionListener(this); //버튼 이벤트 걸기. 이 버튼 이벤트는 저기 밑에있음 
         
        panel1.add(btn); 
        panel1.updateUI(); 
         
        clearTf(); //텍스트필드의 내용을 다 지워버림 
         
}                                             
 
private void DeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here: 
        if(selected == null) { 
            return; 
        } 
        panel1.remove(selected); 
        panel1.updateUI(); 
        selected = null; 
         
        //clearTf(); 
         
}                                             
 
private void UpdateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here: 
        if(selected == null) { 
            return; 
        } 
         
        Student std = new Student(tf1.getText(),tf2.getText()); 
        selected.setStd(std); //버튼의 Student를 다시 설정함 
        selected.refreshName(); //버튼에 적힌 글씨 새로고침 
        clearTf(); 
}                                             
 
private void SearchButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here: 
        panel2.removeAll(); 
         
        if(tf1.getText().equals("") && tf2.getText().equals("")) { 
            return; 
        } 
         
        CustomButton[] cb = getAllButtons(panel1.getComponents()); 
        int size = cb.length; 
        for(int i = 0; i < size; i++) { 
            if(cb[i].getStd().getName().contains(tf1.getText()) && cb[i].getStd().getTel().contains(tf2.getText())) { 
                CustomButton btn = new CustomButton(cb[i].getStd()); 
                btn.addActionListener(this); 
                panel2.add(btn); 
            } 
        } 
         
        clearTf(); 
        panel2.updateUI(); 
         
}                                             
 
private void SortUpButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here: 
        selectionSort(this.getAllButtons(panel1.getComponents()),1); 
        clearTf(); 
}                                             
 
private void SortDownButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // TODO add your handling code here: 
        selectionSort(this.getAllButtons(panel1.getComponents()),0); 
        clearTf(); 
}                                               
     
    private void clearTf() { 
        tf1.setText(""); 
        tf2.setText(""); 
} 
     
private void selectionSort(CustomButton[] btn, int select) { 
        int size = btn.length; 
         
        int maxOrMin; 
        Student iStd, mStd; 
        for(int i = 0; i < size-1; i++) { 
            maxOrMin = i; 
            for(int j = i+1; j < size; j++) { 
                if((select == 0 && btn[maxOrMin].compareTo(btn[j]) < 0) || (select == 1 && btn[maxOrMin].compareTo(btn[j]) > 0)) { 
                    maxOrMin = j; 
                } 
            } 
            iStd = btn[i].getStd(); 
            mStd = btn[maxOrMin].getStd(); 
             
            btn[i].setStd(mStd); 
            btn[maxOrMin].setStd(iStd); 
        } 
        for(int i = 0; i < size; i++) { 
            btn[i].refreshName(); 
        } 
} 
     
private CustomButton[] getAllButtons(Component[] cpt) { 
        int size = cpt.length; 
        CustomButton[] cb = new CustomButton[size]; 
         
        for(int i = 0; i < size; i++) { 
            cb[i] = (CustomButton) cpt[i]; 
        } 
         
        return cb; 
} 
 
@Override 
public void actionPerformed(ActionEvent e) { 
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
        selected = (CustomButton) e.getSource(); 
        tf1.setText(selected.getStd().getName()); 
        tf2.setText(selected.getStd().getTel()); 
}

나머지는 같음.  ㅎ