2016-02-23 17 views
5

Nel mio codice snippet! "checkBoxList" non ha file selezionati da un selettore di file e memorizzati in essocome utilizzare selezionare tutte le opzioni nella checklist in swing java?

casella di controllo "tmp" ha caselle di controllo per i file!

Quando visualizzo i file [checkboxlist] nel mio pannello. Viene deselezionato! Dopo che ho l'opzione per spuntare/deselezionarlo.

Ho il codice sotto per selezionare l'opzione/deselezionare

Ho bisogno di sapere quando i Visualizzare i file! I file dovrebbero essere visualizzati con controllata (segno di spunta) Poi posso modificare cui posso spuntare/deselezionare.

Mi sono bloccato su questa logica!

[

EDIT: ho fatto e risposta aggiornato per questa parte (vedi immagine).

aggiungo select/DeselectAll al pannello (box) e ha funzionato

box.add(chckbxSelectAll); 

& & Ho bisogno & curioso di sapere come mettere la mia casella di selectAll dentro il mio pannello

]

public void selectAllMethod() { 
Iterator<JCheckBox> i = checkBoxList.iterator(); 
while (i.hasNext()) { 
    JCheckBox tmp = i.next(); 
     if (chckbxSelectAll.isSelected()) { 
      tmp.doClick(); 
     } else { 
      tmp.setSelected(false); 
      selectedCounter -= 1; 
      if (selectedCounter < 0) { 
       selectedCounter = 0; 
      } 
    noOfFileTxt.setText(Integer.toString(selectedCounter)); 
     } 
    } 
} 

Ecco il metodo di selezione dei pulsanti per scegliere la cartella e visualizzarla in un pannello con controllo box

public void chooseDirectoryFrom() { 
    String tempStr = null; 
    try { 
     UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); 
     fileChooser = new JFileChooser(); 
     Font font = new Font("Latha", Font.ITALIC, 10); 
     fileChooser.setFont(new Font("Latha", Font.PLAIN, 13)); 
     fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     fileChooser.setFont(font); 

     int returnVal = fileChooser.showOpenDialog(frame); 
     if (returnVal == JFileChooser.APPROVE_OPTION) { 
      tempStr = fileChooser.getSelectedFile().getCanonicalPath(); 
     } 
     if (tempStr != null && !tempStr.trim().equals("")) { 
      searchBox.setText(tempStr); 
      // Enable the search button 
     // btnDisplay.setEnabled(true); 
     } else { 
      //btnDisplay.setEnabled(false); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

// public void selectToDisplay() {   //disabled btn to display 
    File sourceFolder = null; 
    Box box = Box.createVerticalBox(); 
    if (boxList.size() != 0) { 
     middlePanel.remove(scrollPane); 
     middlePanel.repaint(); 
     frame.repaint(); 
     boxList = new ArrayList<Box>(); 
     checkBoxList = new ArrayList<JCheckBox>(); 
     fileNamesMap = new HashMap<String, String>(); 
     selectedCounter = 0; 
     noOfFileTxt.setText(Integer.toString(selectedCounter)); 
    } 
    sourceFolder = new File(searchBox.getText()); 
    File[] sourceFilesList = sourceFolder.listFiles(); 
    JCheckBox cb1 = null; 
    for (int i = 0; i < sourceFilesList.length; i++) { 
     if (sourceFilesList[i].isFile() & sourceFilesList[i].getName().endsWith(".txt")) { 
      fileNamesMap.put(sourceFilesList[i].getAbsolutePath(), sourceFilesList[i].getName()); 
      cb1 = new JCheckBox(sourceFilesList[i].getAbsolutePath()); 
      cb1.setFont(new Font("Latha", Font.BOLD, 20)); 
      box.add(cb1); 
      checkBoxList.add(cb1); 
      cb1.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent e) { 
        if (((AbstractButton) e.getSource()).isSelected()) { 
         selectedCounter += 1; 
        } else { 
         selectedCounter -= 1; 
         if (selectedCounter < 0) { 
          selectedCounter = 0; 
         } 
        } 
        noOfFileTxt.setText(Integer.toString(selectedCounter)); 
       } 
      }); 
     } 
    } 

    boxList.add(box); 
    scrollPane = new JScrollPane(box); 
    scrollPane.setPreferredSize(new Dimension(1050, 350)); 
    scrollPane.setVerticalScrollBarPolicy (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 
    middlePanel.add (scrollPane); 
    frame.getContentPane().add(middlePanel); 
    frame.repaint(); 
    frame.revalidate(); 
} 

Ecco la mia immagine (senza selezione) quando si carica il file nel pannello

+0

A competere esempio viene esaminato [qui] (http://stackoverflow.com/a/7137801/230513). – trashgod

+0

Basta impostarlo su selezionato quando si carica il file? Spiega meglio cosa hai e cosa stai cercando di ottenere, chiedi a qualcuno di aiutarti con la lingua se necessario. – user1803551

+1

Sì per impostare selezionato quando carico i file @ user1803551 – Ram

risposta

1

Per rispondere alla mia domanda:!

Aggiungere casella di controllo set selezionato all'interno del ciclo for e al di fuori della casella di controllo azione listener In modo che esegua il metodo setelected !.

cb1.setSelected(!cb1.isSelected()); 
      selectedCounter += 1; 
      noOfFileTxt.setText(Integer.toString(selectedCounter)); 



selectedCounter += 1; will display the ticked count to the textfield(noOfFileTxt) 

Grazie :)

Problemi correlati