zapis pliku

0

hej,
potrzebuje zrobic zapis pliku (tekstowego) na dysku. ale nim plik sie zapisz chce aby wpierw pojawilo sie okienko z napisem 'zapisz'/'otworz'. stworzenie pliku i zapis jest oczywiscie banalny, ale zastanawiam sie co z tym okienkiem? czy mozna to jakos latwo zrobic? czy jest jakas metoda typu
wyswietlWpopupieZapytanieCzyZapisPlikCzyOtworzyc(stream)?
czy to ja sama musze recznie zaprojektowac taki popup i podpiac pod niego akcje? jesli tak-to jak zrobic akcje 'otworz' tak aby pojawilo sie okienko z lista programow do wyboru?

bede wdzieczna za wszystkie wskazowki :)
pzdr,
misty

0

misty, programiści o 8mej jeszcze śpią, gratuluje zapału ; )

spróbuj z FileChooser'em
http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html

0

:)

do zrobienia okienka z pytaniami uzylam JDialog i JPane. w sumie na ten FileChooser to juz natrafilam jak googlowalam, ale to jest do wyboru pliku na dysku, a ja bym chciala normalnie liste programow. no tak jak na kompie u siebie klikam 'otworz za pomoca' i pojawia mi sie taka fajna lista programow samych do wyboru. da sie cos takiego? no bo skoro ten FileChooser sluzy do wyboru plikow, to nawet jesli mu wskaze np open offica to chyba nie spowoduje to otwarcia pliku w open office?

pzdr :)

0

JFileChooser to tylko wybor sciezki do pliku, co z tym zrobisz dalej to juz zalezy od ciebie.
Do popupow najlepszy jest JOptionPane: http://download.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

0

Jeszcze jedno, zeby jakis plik otworzyc bezposrednio w programie to zazwyczaj wystarczy podac sciezke do pliku w parametrze.

0

dzieki za odp. ale nadal mam pytanie (na razie do opcji 'save' bo to przy niej utknelam). korzystajac z JFileChoosera mam taki kod:

   JFileChooser chooser = new JFileChooser();
      chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
      int option = chooser.showSaveDialog(dialog);

i to mi generuje wlasnie takie okienko wyboru. ale..

  1. na dole mam do wyboru: 'Folder name' oraz 'Files of type'. Wszystko fajnie, tylko 'Folder name' pokazuje mi sciezke w ktorej aktualnie jestem (np. /home/misty). ja bym chciala moc narzucic juz jakas nazwe pliku. czyli zeby np pojawialo mi sie tam /home/misty/plik.txt. to by sugerowalo nazwe pliku jakby uzytkownik nie wpisal. Czy da sie to zrobic?

  2. Jak ja moge sczytac te sciazke pozniej w kodzie? tzn te /home/misty/plik.txt? (jest potrzebna do faktycznego utworzenia i zapisania pliku)

pzdr

0

co do pktu 2giego to widze ze jest cos takiego:
File f = chooser.getSelectedFile();
f.getAbsolutePath();

czyli to czego szukalam. ale pkt 1szy nadal pozostaje jako moje pytanie

0

Pierwsze co mi się rzuciło w oczy: w momencie kiedy stawiasz w kodzie:

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

uniemożliwiasz JFileChooserowi wyświetlanie (a zarazem i wybieranie) plików, on wtedy widzi 'tylko foldery' (piszesz o wyborze pliku, w takiej sytuacji nie będzie to możliwe).

ad. 1: Możesz ustawić domyślną lokację (z której ten JFileChooser będzie zaczynał), za pośrednictwem metody:

chooser.setCurrentDirectory(new File("/a/b/c/d"));

ad. 2:

if (chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION) {
    System.out.println(chooser.getSelectedFile().getName(); //zwróci samą nazwę folderu/pliku wybranego
    System.out.println(chooser.getSelectedFile().getAbsolutePath(); //zwróci całą ścieżkę
}
0

Naucz się korzystac z dokumentacji, to się naprawdę przydaja.

   JFileChooser chooser = new JFileChooser(nazwaKataloguStartowego);
   chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // w ten sposób pliku nie wybierzesz
   chooser.setSelectedFile(new File("misty.txt"));
0

dzieki.

a jesli chodzi o otwarcie pliku? czy moge zrobic tak, aby w okienku wyboru byly same programy? (typu open office, notatnik, gedit, etc). tzn zeby zamiast pokazywac wszystko-mozna bylo jakos skojarzyc? ze plik tekstowy to pokaz liste z takimi oto programami? Jaki obiekt umozliwilby mi od razu otwarcie tego pliku? tzn np wybieram notatnik, klikam 'ok' no i zeby sie od razu w nim moj plik otworzyl. domyslam sie ze samo wskazanie programu nie wystarczy-dlatego pytam Was przy pomocy czego moglabym to zrobic?

pzdr

0

zeby wyswietlac pliki okreslonego typu musisz zalozyc filtr na JFileChooser'a, a co do otwierania aplikacji to musisz to zrobic juz sama, po pobraniu sciezki do zaznaczonego pliku. zdaje sie ze od javy 1.6 mozna wywolywac aplikacje domyslne systemu dla plikow ale to musisz pogooglac bo nie pamietam jak :)

0

@eeee, co da otwieranie pliku domyślną aplikacją, skoro @misty chce właśnie wybierać aplikację?
Otwieranie domyślną aplikacją wygląda tak:

Desktop.getDesktop().browse(new File(....));
0

dobra, dzieki. juz wiem co i jak :)

pzdr,
       misty

1 użytkowników online, w tym zalogowanych: 0, gości: 1