2009-05-17 7 views
0

JTextAreaの新しい文字を重複なく追加するにはどうすればいいですか?JAVAを使用してJButtonを追加するJButtonを押したときです。私のコードは2つのクラス(フォームとFormRunner)を作って、thnxを事前に助けてくれる人を楽しみにしています... SORRYロングコード-PaLoS(初心者)JButtonがでDUPLICATIONなしで追加するには?

のために私は本当に最も

public class Form extends JFrame{ 
    int validator = 0; 
    public String ID,Fname,Lname,Course,Year; 

    private final static String newline = "\n"; 
    private final static String newtab = "\t"; 

    List<Form> myList = new ArrayList<Form>(); 

    private JTextArea summary,result; 
    private JPanel labelPanel,summaryPanel,resultPanel; 
    private JLabel iD,fName,lName,yearL,courseL,labelIcon,labelIconS,labelM; 
    private JButton searchB,addB,editB,deleteB,updateB; 
    private String labels[] = {"ID Number :","First Name :","Last Name :","Course :","Year :"}; 
    private String namesB[] = {"Search" , "Add" , "Edit" , "Delete" , "Update" }; 
    private JTextField formTitle,id,fname,lname,year,course; 

    Form(){ 
     super("MAIN FORM: CASE STUDY"); 
     setupGUI(); 
    } 

    public void setupGUI(){ 

     Container c = getContentPane(); 
     c.setLayout(null); 
     ActionEventHandler handler = new ActionEventHandler(); 

     Insets insets = c.getInsets(); 

     formTitle = new JTextField("FILE MAINTENANCE ",53); 


      labelPanel = new JPanel(); 

//=====================  LABELS  =========================== 
enter code here 

//================================ Palos TEXT FIELDS =================== 

    id = new JTextField(20); 

    id.addKeyListener(new KeyAdapter() 
     { 
     public void keyTyped(KeyEvent ke){ 
      char char1 = ke.getKeyChar(); 
      if((!(Character.isDigit(char1))) && (char1 != '\b')){ 
        ke.consume(); 
       } 
      } 
     }); 

     id.addActionListener(handler); 

     fname = new JTextField(20); 

     fname.addKeyListener(new KeyAdapter() 
      { 
public void keyTyped(KeyEvent ke){ 
    char char1 = ke.getKeyChar(); 
     if((!(Character.isLetter(char1))) && (char1 != '\b')) { 
     ke.consume(); 
     } 
    } 
     public void keyReleased(KeyEvent e){} 
     public void keyPressed(KeyEvent e){} 
}); 
    fname.addActionListener(handler); 

    lname = new JTextField(20); 

    lname.addKeyListener(new KeyAdapter() 
    { 
     public void keyTyped(KeyEvent ke){ 
      char char1 = ke.getKeyChar(); 
    if((!(Character.isLetter(char1))) && (char1 != '\b')){ 
     ke.consume(); 
     } 
    } 
    public void keyReleased(KeyEvent e){} 
    public void keyPressed(KeyEvent e){} 
}); 
    lname.addActionListener(handler); 

    year = new JTextField(20); 
    year.addKeyListener(new KeyAdapter() 
    { 
public void keyTyped(KeyEvent ke){ 
     char char1 = ke.getKeyChar(); 
    if((!(Character.isDigit(char1))) &&  (char1 != '\b')) { 
     ke.consume(); 
    }   
} 
     public void keyReleased(KeyEvent e){} 
     public void keyPressed(KeyEvent e){} 
        }); 
      year.addActionListener(handler); 

      course = new JTextField(20); 

      course.addKeyListener(new KeyAdapter() 
      { 
    public void keyTyped(KeyEvent ke){ 
      char char1 = ke.getKeyChar();     if((!(Character.isLetter(char1))) && (char1 != '\b')) { 
      ke.consume(); 
      } 
     } 
     public void keyReleased(KeyEvent e){} 
     public void keyPressed(KeyEvent e){} 
        }); 
      course.addActionListener(handler); 
//=============================== Palos Buttons =========================== 


    searchB = new JButton(namesB[0]); 
    searchB.setHorizontalAlignment(JTextField.CENTER); 
    **addB = new JButton(namesB[1]); 
    addB.setHorizontalAlignment(JTextField.CENTER); 
    addB.addActionListener(new ActionListener(){ 

public void actionPerformed(ActionEvent e){ 
     id.selectAll(); 
     fname.selectAll(); 
     lname.selectAll(); 
     course.selectAll(); 
     year.selectAll();      
      String textID = id.getSelectedText(); 
      String textFName = fname.getSelectedText(); 
      String textLName = lname.getSelectedText(); 
      String textCourse = course.getSelectedText(); 
      String textYear = year.getSelectedText(); 

     for(int i = 0; i < 1;i++){ 
      for(int j = i;j < myList.size(); j++){ 
       myList.add(Form.generateForm(textID)); 
       if(!myList.contains(id.getSelectedText())){ 
     summary.append("["+ j + "]"+ textID +newtab + textFName + newtab 
              + textLName + newtab + textCourse + newtab + textYear + newline); 
      } 
       else{ 

       continue; 
       } 
      }     
     } 

     summary.setCaretPosition(summary.getDocument().getLength()); 

     } 
    }); 
     editB = new JButton(namesB[2]); 
     editB.setHorizontalAlignment(JTextField.CENTER); 
     deleteB = new JButton(namesB[3]); 
     deleteB.setHorizontalAlignment(JTextField.CENTER); 
     updateB = new JButton(namesB[4]); 
     updateB.setHorizontalAlignment(JTextField.CENTER); 
     updateB.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e){ 

    for(int i = 0; i < myList.size();i++){ 
     summary.add(myList.get(i)); 
    } 

    } 
});*** 

//=================== Palos TextArea =========================== 
     summaryPanel = new JPanel(); 
     summary.setEditable(false); 
     resultPanel = new JPanel(); 

     result = new JTextArea(4,30); 
     result.setEditable(false); 


     summaryPanel.add(new JScrollPane(summary)); 
     resultPanel.add(new JScrollPane(result)); 

//===================================== Palos Container ==================== 

some code here... 

//================================== Palos Setting Of Insets ================== 

     setSize(700,400); 
     setVisible(true); 
     show();; 

    } 
    public static Form generateForm(final String Id){ 
      Form stud = new Form(); 
      stud.setID(Id); 
      return stud;    
     } 


    private class ActionEventHandler implements ActionListener{ 
     public void actionPerformed(ActionEvent e){ 

      if(e.getSource() == addB){ 

      } 
      else if(e.getSource() == updateB){ 

      } 
     } 
    } 

    public String getID() { 
      return ID; 
     } 

     public void setID(String id) { 
      ID = id; 
     } 


} 

答えて

1

使用java.util.Setはユニークを追跡するために助けが必要。新しいセットを追加する前に、セットにすでに存在するチェック - セットに追加しない場合は続行してください。あなたのJTextAreaにのkeyTypedに方法は

0

、次の行を追加します。

char c = ke.getKeyChar(); 
if(yourTextArea.getText().contains(String.valueOf(c))){ 
     //duplicate found, consume the event 
}else{ 
     //no duplicates 
} 
+0

スレシュ私はすでにあなたの提案を試みたが、私は場合の検証プロセス中にありますように、私のアドオンのJButtonに条件を持っている必要があると思います私のIDからの重複した文字はありませんJtextFieldは私のJTextAreaに追加されます... thnx – PaLoS

関連する問題