Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 09. 05. 2012 12:42

symetrala
Příspěvky: 541
Reputace:   
 

java gui

Potřebuju otevřít v java gui pdf soubor, jde mi to tímto zpusobem
Runtime r = Runtime.getRuntime();
        try {
            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler C:\\plocha\\nazev\\soubor.pdf");
        } catch (IOException ex) {
            Logger.getLogger(sorting.class.getName()).log(Level.SEVERE, null, ex);
        }
       
ale je to napevno, potřebuju aby to otevíralo z konkrétné složky(aby to otevíralo i na jiném PC)
nevíte jak to udělat?

Offline

  • (téma jako vyřešené označil(a) symetrala)

#2 11. 05. 2012 12:46

cStP
Příspěvky: 39
Reputace:   
Web
 

Re: java gui

Můžeš tam předat proměnnou typu řetězec kterou složíš ze dvou částí - s tím, že to "fileName" si můžeš načíst třeba z uživatelského vstupu, vstupního souboru apod.


// načtení názvu souboru
String fileName = ...

// spojení řetězců
String parametr = "rundll32 url.dll,FileProtocolHandler";
parametr += fileName;

// spuštění
Runtime.getRuntime().exec(parametr);

Offline

 

#3 11. 05. 2012 16:05 — Editoval symetrala (11. 05. 2012 16:10)

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

↑ cStP:
Zkusim jsem to takto, ale nefunguhe to, jesttli to je teda dobe zapsany, spustim to v gui java po kliknuti na button, takze uzivatel si sam nikam napsat nemuze co chce za soubor..(jestli by si teda napsal, jak ten soubor presne nacist z uzivatel. vstupu)
   
    String fileName = "cviko.pdf";

// spojení řetězců
String parametr = "rundll32 url.dll,FileProtocolHandler";
parametr += fileName;
        try {
            // spuštění
            Runtime.getRuntime().exec(parametr);

Offline

 

#4 11. 05. 2012 17:28

Jaa(c)
Zelenáč
Příspěvky: 13
Reputace:   
 

Re: java gui

Chybí ti mezera mezi FileProtocolHandler a cviko.pdf. Btw, máš to cviko.pdf na správném místě?

Offline

 

#5 11. 05. 2012 23:57

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

↑ Jaa(c):
myslis mezera za carkou? No mam ty pdfka ve slozce na plose, nebo kde je mam mit? Tam zadnou uvedenou cestu nemam, ale potrebuju prave aby to ten soubor naslo podle nazvu a otevrelo....

Offline

 

#6 12. 05. 2012 00:33

Jaa(c)
Zelenáč
Příspěvky: 13
Reputace:   
 

Re: java gui

↑ symetrala: myslím mezeru mezi FileProtocolHandler a cviko.pdf, přesně, jak sem to napsal. Teď tam máš FileProtocolHandlercviko.pdf.
A na ploše ti to rozhodně nenajde, pokud tomu nezadáč cestu ve tvaru C:// nebo /home/ nebo prostě nějakou absolutní cestu. Buď musíš dát ty pdf přímo do složky, odkud ten soubor spouštíš a nebo tam musíš dát absolutní cestu.

Offline

 

#7 12. 05. 2012 17:49

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

↑ Jaa(c):
no práve to mam ve slozce ze ktere to spoustim, ale jak to teda zadám aby to naslo primo v ty slozce, jde mi to jen u me v pc...:/ Potreboval bych presne kod, slozka se jmenuje home a v ní mam ty pdfka, musi to najit proste primo tu slozku...

Offline

 

#8 12. 05. 2012 19:55

Jaa(c)
Zelenáč
Příspěvky: 13
Reputace:   
 

Re: java gui

symetrala napsal(a):

jde mi to jen u me v pc...:/

No tak asi jinde nemáš ty pdfka na stejnym místě... Jak ten program spouštíš? Přes nějakej JAR? Pokud jo, tak dej pdfka na to samý místo jako je ten jar a pak stačí napsat jenom jejich název.
Nebo musíš použít absolutní cestu (už sem ti to psal), tedy musíš tam napsat celou cestu k tý složce home - C://neco/....../home/soubor.pdf ...

Offline

 

#9 12. 05. 2012 21:50 Příspěvek uživatele symetrala byl skryt uživatelem symetrala.

#10 12. 05. 2012 22:12

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

[re]p285241|

Uz dobry , to uz funguje, jeste se chci zeptat jestli nahodou nevíš, jak v java gui, kdyz kliknu na tlacitko aby mi vyjel option a mohl jsem si vybrat jakykoliv txt soubor, víš ne?Jak je to normálně , když dáš třeba procházet ve Windowsech...

Offline

 

#11 13. 05. 2012 14:48

cStP
Příspěvky: 39
Reputace:   
Web
 

Re: java gui

na to už je potřeba nějaká grafický balík - např. swing... příkladů jak na to je hodně na Googlu. Stačí zadat fráze jako "java file chooser", "java swing filechooser" apod.

Mezi prvními například:
http://docs.oracle.com/javase/tutorial/ … ooser.html
http://www.exampledepot.com/egs/javax.s … tedlg.html
http://www.leepoint.net/notes-java/GUI/ … ooser.html

a další...

Offline

 

#12 13. 05. 2012 16:06

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

↑ cStP:
no tak třeba v tom prvnim odkazuje tento kod:

public void actionPerformed(ActionEvent e) {
    //Handle open button action.
    if (e.getSource() == openButton) {
        int returnVal = fc.showOpenDialog(FileChooserDemo.this);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fc.getSelectedFile();
            //This is where a real application would open the file.
            log.append("Opening: " + file.getName() + "." + newline);
        } else {
            log.append("Open command cancelled by user." + newline);
        }
   } ...
}

mohl by si to uzpusobit presne ma moje parametry? Protoze z toho to nechapu

Offline

 

#13 13. 05. 2012 16:57

Jaa(c)
Zelenáč
Příspěvky: 13
Reputace:   
 

Re: java gui

Ne. Jak máme vědět, jaký jsou tvoje parametry? Buď se budeš muset naučit aspoň nějaký základy nebo si to nech od někoho udělat... Navíc všechno tohle se dá úplně jednoduše vygooglit.
V týhle ukázce je důležití jenom jedna řádka a to
   File file = fc.getSelectedFile();
kde file je to tvoje pdfko. Jediný co teď potřebuješ je udělat někde tlačitko a nastavit mu event po kliknutí, cpož je třída s touhle metodou. Googli něco jako "java button click event"...

Offline

 

#14 13. 05. 2012 17:30 — Editoval symetrala (13. 05. 2012 17:30)

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

[re]p285536|Jaa(c)[/r
ale ja uz metodu na tlacitko vytvorenou mam, jen potrebuju vedet jestli to musim udelat novou tridu pro okno a do toho napsat co? a nebo uz do ty metody to psát....prsote potrebuju aby se po kliknuti otevrel ten chooser, nebo jaky specialni parametry potrebujes vedet...

Offline

 

#15 13. 05. 2012 19:11

cStP
Příspěvky: 39
Reputace:   
Web
 

Re: java gui

Stačí ti tenhle kousek kódu (+ pozměnit názvy proměnných; např. se zde porovnává jestli, zmáčknuté tlačítko bylo jménem "openButton" což sis ty nejspíš pojmenovala jinak) + import vhodných balíků, proto "aby to jelo"... Teďka přesně nevím, jak to myslíš, ale pro tento kousek kódu, který odchytává kliknutí tlačítka novou třídu vytvářet nemusíš. Vlož to do již existující třídy jako další metodu...

Celý zdrojový kód funkčního programu je tam taky k nahlédnutí - zde http://docs.oracle.com/javase/tutorial/ … rDemo.java <-- tady se můžeš podívat jak mají řešené třídy, metody jejich volání, ...

Nejlepší bude, zkopírovat si to k sobě, zkusit si to spustit a podívat se co a jak se kdy volá... Přidej si tam pár výpisů do terminálu, změň si tam pár věcí a uvidíš jak se bude měnit chování...

Offline

 

#16 13. 05. 2012 20:09

symetrala
Příspěvky: 541
Reputace:   
 

Re: java gui

↑ cStP:
jaký kousek? Myslíš tento?

public void actionPerformed(ActionEvent e) {
    //Handle open button action.
    if (e.getSource() == openButton) {
        int returnVal = fc.showOpenDialog(FileChooserDemo.this);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fc.getSelectedFile();
            //This is where a real application would open the file.
            log.append("Opening: " + file.getName() + "." + newline);
        } else {
            log.append("Open command cancelled by user." + newline);
        }
   } ...
}   

, to je jako celý kód? Nemohl bys prosím sem hodit přesný kód, ktrý zkopiruju do events primo pod tlacitko,proste jen aby to otevrelo ten chooser, nijak zatim nic pojmenovany nemam..

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson