2016-02-23 2 views
5

In meinem Code-Schnipsel! "checkBoxList" hat keine Dateien, die von einem Dateiwähler ausgewählt und darin gespeichert werdenWie benutze ich alle Option in Checkliste in Swing Java?

Kontrollkästchen "tmp" es hat Kontrollkästchen für die Dateien!

Wenn ich die Dateien [checkboxlist] in meinem Panel anzeigen.Es ist nicht aktiviert! Nachdem ich die Option zum Ankreuzen/Deaktivieren habe.

Ich habe den Code unten für Aktivieren/deaktivieren Option

ich wissen müssen, wenn ich die Dateien angezeigt werden! Die Dateien mit überprüft (Tick) Dann kann ich ändern, welche E/untick kann tick anzeigen soll.

Ich steckte auf dieser Logik!

[

EDIT: Ich habe und aktualisiert Antwort für diesen Teil (siehe Bild).

ich hinzufügen select/DeselectAll an der Platte (box) und es funktionierte

box.add(chckbxSelectAll); 

& & Ich brauche & neugierig, wie in meinem Panel

]

mein selectAll Checkbox setzen
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)); 
     } 
    } 
} 

Hier ist meine Schaltfläche Auswahlmethode zum Auswählen von Ordner und Anzeige in einem Panel mit Check 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(); 
} 

Hier mein Bild ist (ohne Auswahl) Wenn ich die Dateien in das Panel laden

+0

Ein Beispiel konkurrieren [hier] untersucht (http://stackoverflow.com/a/7137801/230513). – trashgod

+0

Setzen Sie es einfach auf ausgewählt, wenn Sie die Datei laden? Erkläre besser, was du hast und was du zu bekommen versuchst, wenn du jemanden brauchst, der dir bei der Sprache hilft. – user1803551

+1

Yeah zu wählen, wenn ich die Dateien @ user1803551 laden – Ram

Antwort

1

Um meine eigene Frage zu beantworten:

hinzufügen Checkbox gesetzt innerhalb der for-Schleife ausgewählt und außerhalb des Kontrollkästchens action listener Damit wird die Methode setselected durchgeführt !.

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



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

Danke :)