Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


open?

Postades av 2002-11-14 11:07:16 - Diana Jonsson, i forum java, Tråden har 20 Kommentarer och lästs av 1093 personer

Jag har utvecklat ett program som analyserar data i en fil och visar detta. Dessa filer har ändelsen .slp. När man dubbelklickar på dessa filer vill jag att mitt program skall starta och att denna fil ska öppnas. Jag har gjort en association från filer som slutar med .slp till mitt program med hjälp av ett installationsprogram. Men som det är nu öppnas bara själva programmet, inte filen jag klickar på.

Hur gör jag? Jag har försökt olika metoder:

Så här ser min mainfunktion ut:

static public void main(String args[])
{
try
{
new MainWindow();

}
catch (Throwable t)
{
System.err.println(t);
t.printStackTrace();
System.exit(1);
}
}

Den gör alltså en ny MainWindow. Härifrån kan användaren öppna valfri fil genom att välja Arkiv->Öppna, detta genom en funktion openFile. (Men nu vill jag alltså att den fil man klickade på skall öppnas "automatiskt".)

Jag har testat att lägga till en till konstruktor till MainWindow:

Så här såg den första ut:
public MainWindow() {
//some code
}

Denna har jag lagt till:
public MainWindow(String filename){
f=filename;
//some code
openFile(f);
}

Jag har även testat att lägga till en till main (detta vet jag inte om det är rätt. Först klagade den på static, så jag skippade den och skrev följande):
public void main(String filename)
{ try
{
String f;
f=filename;
new MainWindow(f);
}
catch (Throwable t)
{
System.err.println(t);
t.printStackTrace();
System.exit(1);
}
}

Hur ska jag göra för att få programmet att fatta att jag har klickat på en fil och hur ska den veta vilken fil jag klickat på??!!

Hjälp!

/D


Svara

Sv: open?

Postades av 2002-11-14 12:45:09 - Peter Ramström

Hello.

Hur visar du filen? Är det i en ny frame? Isf kan du göra en public static main i framen.
och peka ut den som startprogram för dina filer.



Svara

Sv: open?

Postades av 2002-11-14 12:51:01 - Diana Jonsson

Hm, jag förstår inte riktigt.

MainWindow ärver från JFrame. Det är i denna som filen visas, den består av en massa menyer. (Ungefär som Word kan man säga.)


/Diana


Svara

Sv: open?

Postades av 2002-11-14 13:49:49 - Peter Ramström

Ok, jag tänkte att du öppnade ett nytt fönter när du öppnade en fil. Men så är det alltså inte ?

I så fall får du kolla om det skickas med några parametrar till ditt program typ en sökväg till filen, vet inte hur det funkar men jag tycker att informationen borde skickas med i anropet.
Sen kan du loopa igenom din array i din mainmetod och skriv ut vad som skickas med.

lite rörigt skrivet kanske men hoppas du va med på noterna.

Peter


Svara

Sv: open?

Postades av 2002-11-14 15:09:50 - Diana Jonsson

Tack för att det är någon som svarar!!
Men jag är inte riktigt med. Jag är inte så hemma vad gäller main argumenten.
När användaren öppnar filen via programmet sätts sökvägen till filen via "opendialog rutan" och sedan anropas openFile med denna sökväg. Men hur ska jag kunna testa programmet då jag dubbelklickar på en fil? Då måste jag väl ha gjort en jar-fil eftersom det är installationsprogrammet som associerar från .slp filen så att mitt program skall köras? (Hoppas att jag kan testa detta på annat sätt!)
Jag vet heller inte vad som bestämmer vad som skickas med som argument.

Snälla förklara lite mer?!


Svara

Sv: open?

Postades av 2002-11-14 15:20:47 - Peter Ramström

Hello.

Vad jag menar är:

förhoppningsvis så skicka sökvägen till filen du klickat på till din mainmetod i form av ett argument.

din main ser ut så här:

<code>
public static void main(String argv[]){

//din kod.

}
</code>

argumentet till din main metod är då String argv[] en stringarray. om du loopar igenom den typ:

<code>
for(int i=0; i<argv.length();i++){
System.out.println("argv:: "+argv[i]+ " position "+i);
}
</code>

OBS! ej testad kod.

då skrivs alla argument ut i konsolen. Och du kan då se om det finns en sökväg till filen med. Om sökvägen skickas med kan du skicka den till din metod som öppnar dina filer.

Berätta gärna hur det går... :-)

Peter.



Svara

Sv: open?

Postades av 2002-11-14 15:38:04 - Diana Jonsson

Ja, jag testade arg[0], arg[1] osv, men då fick jag felmeddelanden. Därför testade jag att skriva: argv.length och den är lika med 0! Alltså får jag inte in några argument till min main?! Men det kanske inte är så konstigt? Jag kör ju nu med JBuilder och då vet jag inte hur jag ska mata in argument till main? För när jag testkör koden, då öppnas ju programmet och sedan måste man välja Arkiv->öppna, och filen öppnas. Jag vet inte hur jag ska testköra programmet när jag dubbelklickar på en fil?!
(Nu har jag gjort så att jag komilerar allt och sedan gör jar-fil av det och kör skarpt.)

/D


Svara

Sv: open?

Postades av 2002-11-14 15:49:14 - Peter Ramström

>Men det kanske inte är så konstigt? Jag kör ju nu med JBuilder

Nä, då är det inte så konstigt. :-)

Det som var intressant var väl när du klickar på en fil som är kopplad till dit program?
Eller missförstod jag dig?

>Jag vet inte hur jag ska testköra programmet när jag dubbelklickar på en fil?!
>(Nu har jag gjort så att jag komilerar allt och sedan gör jar-fil av det och kör skarpt.)

Det låter som en bra idé. Kom ihåg att ha utskriften i main kvar bara...

Peter.



Svara

Sv: open?

Postades av 2002-11-14 15:56:19 - Diana Jonsson

Ja, det var det som var meningen: att man ska kunna öppna en fil på två olika sätt: antingen genom att öppna programmet och sedan välja fil i menyn, eller att man dubbelklickar direkt på den filen som man vill ska öppnas. Precis som om man öppnar ett visst word-dokument. Nu öppnas liksom bara programmet (Word) utan fil i.

Och det fungerar inte när jag gjort jar-fil av det och dubbelklickar! Det är ju då som programmet öppnas men inte filen jag dubbelklickade på.

/D


Svara

Sv: open?

Postades av 2002-11-14 16:05:05 - Peter Ramström

Utskriften då? Är argv.length() fortfarande tom när du dubbelklickar?


Svara

Sv: open?

Postades av 2002-11-14 16:06:39 - Diana Jonsson

Jag är SÅÅ glad att du svarar!!

Vart kan man se utskriften om man kör jar-filen?

/D


Svara

Sv: open?

Postades av 2002-11-14 16:16:52 - Diana Jonsson

Jag får återkomma imorgon, tack för dina svar!!


Svara

Sv: open?

Postades av 2002-11-14 16:22:12 - Peter Ramström

Ja just det ja... En miss från min sida... :-P

Men släng in en dialogruta i programmet. (du får iof bygga nytt jar)

Om du inte visste det innan:

<code>

String strMed="Argument: \n";
for(int i=0;i<argv.length();i++){
strMed += "Nr "+i+" "+argv[i] + "\n";
}
javax.swing.JOptionPane.showMessageDialog(null,strMed);

</code>

ej testat!

så ska det dyka upp en meddelanderuta med alla argument.

Peter


Svara

Sv: open?

Postades av 2002-11-15 08:05:05 - Johan Bovin

hur associerar man en fil till ett Java-program?
Man kan väl inte associera en fil med en JAR eller?

/Johan - väldans undrande


Svara

Sv: open?

Postades av 2002-11-15 08:37:27 - Markus Bengtsson

Hej
Jag vet inte riktigt hur man associera en fil men...
Man kan starta en JAR fil med hjälp av en genväg
Man tar och skapar en genväg som startar exe filen javaw
och som inparameter sätter man jar filen.
Alltså
Försök få javaw att starta en jar fil från ett dosfönster.
När du får det att fungera kan man skapa en genväg som tar jar filen som en växel.
På precis samma sätt gör exempelvis word när man skall öppna ett word dokument.
Så det borde gå att associera en jar fil så att den kan köras direkt vid dubbelklick
Det är i teorin altså. Om det skulle fungera Borde man kunna få en slp fil som personen ovan vill få fungera. Men jag är lite ringrostig på java. Jag skall se om jag inte skulle kunna koda ett litet java program o testa.

En sak till. Om man använder sig av suns JRE så skall ni veta att man kan kopiera installationen och lägga den i en separat katalog. Den katalogen kan följa med när man installerar sitt program. Och då kan man köra sitt program genom att peka det på denna katalog. På så sätt kan man distribuera sin java runtime version och bli oberoende av vad användaren redan har installerat. Tyvärr är det så att vissa java motorer inte är fullt bakåt kompatibla.

Men det vara bara en parantes.

/Markus


Svara

Sv: open?

Postades av 2002-11-15 08:39:42 - Diana Jonsson

<hur associerar man en fil till ett Java-program?
<Man kan väl inte associera en fil med en JAR eller?

Nej, det kan man nog inte. Jag associerar den egentligen till en exe-fil som i sin tur kör jar-filen.

/D


Svara

Sv: open?

Postades av 2002-11-15 08:56:16 - Diana Jonsson

<Man kan starta en JAR fil med hjälp av en genväg
<Man tar och skapar en genväg som startar exe filen javaw
<och som inparameter sätter man jar filen.
<Försök få javaw att starta en jar fil från ett dosfönster.

Oj, du får nog förklara närmre. Hur skapar man en genväg, och hur skriver man för att starta exe-filen javaw, så här: .\j2re1.4.0\Bin\javaw.exe ?
Jag vet inte ens hur man kör ett java program från dos-fönstret!


/D


Svara

Sv: open?

Postades av 2002-11-15 09:16:30 - Diana Jonsson

Tack så HEMSKT mycket, alla som har hjälp mig!

När jag gjorde dialogrutan var första argumentet = sökvägen till filen som jag ska öppna, alltså rätt argument!!

Då löste det sig genom att jag skrev så här:
static public void main(String args[])
{
try
{
if (args.length >0){
String f = new String(args[0]);
new MainWindow(f);
}
else
new MainWindow();
}
catch (Throwable t) {
System.err.println(t);
t.printStackTrace();
System.exit(1);
}
}

:-)

/Diana


Svara

Sv: open?

Postades av 2002-11-15 09:18:35 - Johan Bovin

<<hur associerar man en fil till ett Java-program?
<<Man kan väl inte associera en fil med en JAR eller?

<Nej, det kan man nog inte. Jag associerar den egentligen till en exe-fil som i sin tur kör jar-filen.>
ok...men det du behöver göra då är ju att fånga commandlinen i det programmet. Filnamnet kommer in som ett argument i commandlinen, därefter kan du ju starta ditt java program inifrån det programmet med filnamnet som argument i en metod...

/Johan
------------
Verkar som du löste det mao....mitt inlägg var lite sent..bortse från detta...


Svara

Sv: open?

Postades av 2002-11-15 11:37:50 - Markus Bengtsson

Hej Diana
Om jag förstått dig rätt så har du skapat en exe fil med hjälp av ett installationsprogram. Sedan associerar du slp filen till denna exe fil.
Exe filen i sin tur kör ditt java program som ligger i en jar fil
korrekt?

/Markus


Svara

Sv: open?

Postades av 2002-11-18 15:12:58 - Diana Jonsson

Ja, precis, jag har gjort en installationsfil där jag har associerat .slp filerna till en exefil. Denna exe fil körs alltså om jag öppnar en .slp fil och denna exe-fil kör i sin tur min jar-fil med mitt java-program!

/D


Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 845
27 961
271 763
636
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies