Eintrag einer JListe bearbeiten

newangel85

Grünschnabel
Hallo alle zusammen,
ich hab 2 kleinere Probleme. Ich hab eine GUi Programmiert die eine JList hat mit mehren einträgen.
Meine Gui hat 2 Buttons : 1 Button zum löschen einer Datei und der andere Button zum Hinzufügen einer Datei.Wobei sich beim hinzufügen ein neues DialogFenster öffnet,wo ich dann die Datei speichern kann.(mit einen Namen und einen Pfad als eigenschaften )Der dateiname erscheint dann in meiner Jlist der Hauptoberrfläche.

Ich hab meiner JList ein MenuItem bearbeiten gegeben,das mit der rechten maustaste aktiviert wird. Wenn es betätigt wird öffnet sich das gleiche DialogFenster was auch bei den Hinzufügen Button erscheinen soll.

So jetzt komm ich zu mein Problem....ich möchte ein vorhandene Datei durch das MenuItem bearbeiten ersetzen.

Mein DialogFenster was sich beim aktivieren der Datei öffnet zeigt mir gleich den alten Pfad und den alten Namen.

Damit keine doppelten Einträge in meiner JList steht überprüf ich bevor ich eine Datei speichere ob ein Dateinamen und Pfad mit diesen Namen bereits schon existiert. Nur wenn beide nicht vorhanden sind wird ein neuer Eintrag in meiner Jlist vorgenommen.

Bis jetzt kann ich mit bearbeiten eine neue Datei anlegen aber nicht verändern und speichern.
Wenn ich eine Datei bearbeiten möchte und nur den Namen verändern will sagt mir mein programm beim speichern das diese Datei schon vorhanden ist,weil ja der Pfad gleich blieb.
Wie schaff ich es das ich ein bereits vorhandenen Eintrag bearbeiten kann.

Da ich ja das gleiche DialogFenster für 2 verschiedene Einstellungen benutzen möchte.

Einmal zum anlegen einer Datei mit Pfad und Name und einmal zum bearbeiten.....





mein code:
PHP:
private void jb_uebernehmenActionPerformed(java.awt.event.ActionEvent evt)                                               
  {                                                   
    String fileName  =  getNameTextField(); 
    String path      =  jtf_Pfad.getText();
    boolean gespeichert;
    int zahl = 0;
    
    try
    {
      if((fileName.length() != 0) && (path.length() != 0) &&
          (fileName.equals("") == false ) &&
          (path.equals("") == false))
      {
        setCursor(new Cursor(Cursor.WAIT_CURSOR));
        gespeichert = IniConfigController.getInstance().saveNewIniEntry(fileName,path);
        setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
               
        if(gespeichert == true)
        {
          zahl = 4;
          m_AppIniConfigurator.refresh();
        }
        else
          //speichern ist false Name oder Pfad ist schon vorhanden
          zahl = 3;
      }
      
      else if((fileName.length() == 0) || (fileName.equals("") == true))
      {
        zahl = 1;
      }
      
      else if((path.length() == 0) || (path.equals("") == true))
      {
        zahl = 2;
      }
      
      switch (zahl)
      {
        case 1:
          JOptionPane.showMessageDialog(this, "Geben sie einen Dateinamen ein", "Fehlerhafte Eingabe", JOptionPane.ERROR_MESSAGE);
          break;
        case 2:
          JOptionPane.showMessageDialog(this, "Geben sie einen Dateipfad ein", "Fehlerhafte Eingabe", JOptionPane.ERROR_MESSAGE);
          break;
        case 3:
          JOptionPane.showMessageDialog(this, "Die Datei ist schon vorhanden", "Information", JOptionPane.INFORMATION_MESSAGE);
          break;
        case 4:
          JOptionPane.showMessageDialog(this, "Die Datei wurde gespeichert", "Information", JOptionPane.INFORMATION_MESSAGE);
          break;
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
  }


Mein 2 Problem ich möchte ein MenuItem Copy/paste in meiner Gui einbauen.
Also dateien per mouse kopieren können und entfernen können...gibt es da shcon fertige Methoden?

Oder ein paar inet seiten mit beispielen....

Danke für die Hilfe
 
Mein Vorschlag wäre:

Code:
String fileName  =  getNameTextField();  
String path      =  jtf_Pfad.getText(); 

File f = new File(path+filename);
if(f.exist == false)
{
    // in dem Fall kann die Datei gespiechert werden, da es keine andere mit dem Namen geben kann    

}
else
{
    zahl=3;
}


try/catch bitte selber beachten :)
 
Zurück