Hej
Potrzebny mi kod który za pomocą javy będzie mi wyświetlał pliki i katalogi dysku (może być tylko podpowiedź) :-)
poza tym czy jest funkcja w javie żeby zmieniać rozmiary obrazka.
Dzięki za pomoc :-)
Hej
Potrzebny mi kod który za pomocą javy będzie mi wyświetlał pliki i katalogi dysku (może być tylko podpowiedź) :-)
poza tym czy jest funkcja w javie żeby zmieniać rozmiary obrazka.
Dzięki za pomoc :-)
w swingu jest komponent na to JFileChooser
to typowe oienko dialogowe służące do wyboru plików
JFileChooser jfc=new JFileChooser();
jfc.showDialog(null,"JakiśTamOpis"); wywołuje to okienko
a wybrany plik pobierasz np. za pomocą metody getAbsolutePath()
a rozmiar okna zmienaisz przez setSize(int x, int y);
możesz to także zrobić bez swinga:
String directory="jakiśTamKatalog";
File dir=new File(File.separator+directory);
String [] pliki=dir.list();
i w pliki masz listę wszystkich plików z tego katalogu
Dzięki za pomoc dotyczącą pliku :). Co do drugiej części to niechcę zmienić rozmaru okna tylko obrazka png lub jpg. Czy w ogóle jest to możliwe :)
Rozumiem ze chcesz moc np. plik gif o wielkosci 8 KB zamienic na wielkosc 100 MB lub inna? Chyba nie mozna tak zrobic, ale jaki jest zreszta sens takiej operacji??
jeśli chodzi ci o obrazek, z którego korzystasz i chcesz zmienić jego rozmiar w programie to najprostszą metodą jest użycie wykreślacza:
Image obraz //załóżmy że tu masz obraz
float wsp //to jakiś tam współczynnik powiększenia np. 1.5
BufferedImage temp=new BufferedImage(obraz.getWidth(null)*wsp,obraz.getHeight(null)*wsp,BufferedImage.TYPE_4BYTE_ABGR); //stworzenie jego kopii o odpowiednich rozmiarach
Graphics gDC=temp.getGraphics(); //wykreślacz do kopii
gDC.drawImage(obraz,0,0,obraz.getWidth(null)*wsp,obraz.getHeight(null)*wsp,null); //wymalowanie obrazu w buforze
gDC.dispose(); //zwolnienie wykreślacza, teraz w tempie masz nowy, większy obrazek
ImageIcon temp2=new ImageIcon(temp);
Image nowy=temp2.getImage(); //i w image masz już nowy obrazek
Dzięki za pomoc. Popróbuje bo ja muszę stworzyć obrazki o wielkości 2 do jakieś potęki. :-) [browar]
Co do listy katalogów to pierwszy kod działa wyśmienicie ale ten poniższy kod nie
String directory="obraz";
File dir=new File(File.separator+directory);
String [] pliki=dir.list();
mam to podłączyć do nowego okna czy jak.
lub jak to zmienić żeby było widoczne tylko obrazki jpg i png
JFileChooser jfc=new JFileChooser();
jfc.showDialog(null,"JakiśTamOpis"); // wywołuje to okienko
ta druga wersja ( z Dir) pop rostu tworzy ci litę plików z danego katalogu i umieszcza w tablicy String. Jest to przydatne jeśli np. tworzysz jakieś Combo z listą, z którego wybierasz jeden element.
w JFileChooser jest możliwość ustawienia filtrów, które poażą ci jedynie określone pliki, poniżej prosta wersja:
JFileChooser jfc=new JFileChooser(); //konstruktor
jfc.setFileFilter(new FileFilter(){ //dodanie filtrów
public boolean accept(File f) {
String name=f.getName().toLowerCase();
return name.endsWith(".gif") //jakie chcesz formaty
|| name.endsWith(".jpg");
}
public String getDescription() {
return "Obrazki"; //opis typów
}
});
Jesteś wielki :-). Dzięki za pomoc.
Jakbyś mi mógł jeszcze powiedzieć czy do pierwszej wersji idzie dodać wyświetlanie tych obrazków. :)
Poniższy kod wyświetla mi całą ścieżkę na którym znajduje się mój wybrany plik. A ja bym chciała żeby mi wyświetlał tylko nazwę pliku i rozszerzenie. :d
String filename = jfc.getSelectedFile().getAbsolutePath();
//openFile(filename);
System.out.println("" + filename);
}
betmira napisał(a)
Jesteś wielki :-). Dzięki za pomoc.
Jakbyś mi mógł jeszcze powiedzieć czy do pierwszej wersji idzie dodać wyświetlanie tych obrazków. :)
Jest to możliwe. Musisz na chooserze wykonać metodę:
fc.setAccessory(new ImagePreview(fc));
a klasę ImagePreviev ściągnij sobie z tąd:
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/ImagePreview.java
a tak ogólnie to masz fajny przykład na:
http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html#advancedexample
mwach20 napisał(a)
betmira napisał(a)
Jesteś wielki :-). Dzięki za pomoc.
Jakbyś mi mógł jeszcze powiedzieć czy do pierwszej wersji idzie dodać wyświetlanie tych obrazków. :)Jest to możliwe. Musisz na chooserze wykonać metodę:
fc.setAccessory(new ImagePreview(fc));
a klasę ImagePreviev ściągnij sobie z tąd:
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/ImagePreview.java
a tak ogólnie to masz fajny przykład na:
http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html#advancedexample
tzn co co teraz podałem to umożliwia wyświetlanie miniaturek obrazków w oknie filechoosera, a jeśli chcesz wczytywać te obrazki do programu to robi się to tak:
if((fc.showDialog(null,"Wybierz"))==JFileChooser.APPROVE_OPTION){
ImageIcon icon=new ImageIcon(fc.getSelectedFile().getAbsolutePath());
Image obraz=icon.getImage(); //w obraz masz wybrany obrazek
}
betmira napisał(a)
Poniższy kod wyświetla mi całą ścieżkę na którym znajduje się mój wybrany plik. A ja bym chciała żeby mi wyświetlał tylko nazwę pliku i rozszerzenie. :d
String filename = jfc.getSelectedFile().getAbsolutePath();
//openFile(filename);
System.out.println("" + filename);
}
filename=jfc.getSelectedFile().getName()
DZIEKI [browar] . Dzięki takim osobą jak ty programowanie jest przyjemnością :). [soczek] Pozdrawiam i życzę miłego programowania :)
filename=jfc.getSelectedFile().getName()
a żeby była sama nazwa pliku bez rozszeżenia ??:)
betmira napisał(a)
filename=jfc.getSelectedFile().getName()
a żeby była sama nazwa pliku bez rozszeżenia ??:)
najprościej to chyba tak:
String plik; //tutaj nazwa pliku np plik.txt
plik=plik.substring(0,plik.lastIndexOf('.')); //wycinasz kawałek nazwy od początku do ostatniego wystąpienia kropki (tzn przed rozszerzeniem)