Zum Inhalt springen

dommes89

Mitglieder
  • Gesamte Inhalte

    42
  • Benutzer seit

  • Letzter Besuch

Beiträge von dommes89

  1. Ja, also das mit dem bin und src weiss ich..

    den Ordner außerhalb vom .jar file anzulegen kommt leider nicht in frage..

    Okay ich werde es mal ausprobieren ob es möglich ist wenn ich den ordner ins stammverzeichniss des jar files lege...

    Danke.

  2. Hallo,

    Und zwar wollte ich mein Programm kompilieren und dann in ne .JAR packen, sodass man es einfach so ausführen kann.

    Jetzt ist mir ein total unerklärliches Problem aufgetaucht bzw. sogar 2!:

    Meine Klasse befindet in einem Package "chat" ... dieses Package enthält noch einen Ordner "smilies"...

    So muss ich in meiner Klasse die Smilies aufrufen (wenn ich das Programm in Eclipse teste):

    
    static String icon_path = "bin/chat/smilies/";
    
    
    .
    
    .
    
    .
    
    .
    
    
    // Icons
    
    		try{
    
    			File dir = new File(icon_path);
    
    			File[] fileList = dir.listFiles();
    
    
    			i = 0;
    
    			icons = new ImageIcon[fileList.length];
    
    
    			for(File f : fileList) {
    
    				try{
    
    					icons[i] = new ImageIcon(icon_path+f.getName());
    
    
    				}catch(IndexOutOfBoundsException df){	
    
    				}
    
    			    i++;
    
    			}
    
    		}catch(NullPointerException npe){
    
    
    		}
    
    
    In einem Beispiel File jedoch sieht der Pfad folgendermaßen aus, OBWOHL dort die Klasse ebenfalls sich in einem Package befindet und der Ordner für die Grafiken sich ebenfalls in diesem Package befindet:
    
    ("images/Pig.gif", "a cute pig")
    
    

    Jetzt als erstes mal, wieso brauche ich zum ausführen bei meinem File noch das "bin" und den Packagename im Pfad?

    Als zweites und wichtigeres: wieso funktioniert das 2. Beispiel wenn ich es in ein .JAR Packe und das 1. nicht? auch wenn ich beim 1. Beispiel vorher den Pfad dem 2. Beispiel angleiche???

    Das ist äußerst rätselhaft...

    Ich hoffe einer hat eventuell ne Idee....

    Gruß

  3. Hi,

    habe es nun mit

    messagesText.setCaretPosition(messagesText.getText().length());

    hinbekommen =)

    Was jedoch nun noch Luxus wäre:

    Ich lade ja den Text aus einer Datei jede Sekunde neu in das TextPane, und stelle den Scrollbalken immer nach ganz unten... Bzw. er Springt sowieso immer wieder dann nach ganz unten...

    Was mich interessieren würde:

    Kann man es irgendwie machen, dass wenn ich den scrollbalken z.B. in die Mitte schiebe, dass dieser dann auch nach dem neu laden an dieser Text Position bleibt? So dass man sich den Text in Ruhe durchlesen kann, auch wenn ganz unten immer weiter Text angehängt wird? Und die ScrollBar nur dann immer ganz unten bleibt wenn man sie auch nach ganz unten getan hat?

    Gruß

  4. Also erst mal danke für die Hilfe habe es nun hinbekommen =)

    Die innere Methode, die Action für den Button, wollte unbedingt einen Zähler der mit "final" definiert wird... habe nun innerhalb der Schleife den Wert "i" einem final counter zugewiesen und diesen dann in der Methode benutzt... nun geht es =)

    
    for(i=0; i<icons.length; i++){
    
    			final int counter = i;
    
    
    			sel_icon[i] = new JButton(icons[i]);
    
    			action[i] = new ActionListener() {
    
    			      public void actionPerformed(ActionEvent actionEvent) {
    
    			        try{
    
    			        	inputText.append("*"+icons[counter].toString().replaceAll(icon_path, "").replaceAll(".gif", "")+"*");
    
    			        	iconList.setVisible( false );
    
    			        }catch(NullPointerException npe){		        	
    
    			        }
    
    			      }
    
    			};
    
    
    			sel_icon[i].addActionListener(action[i]);
    
    			iconList.add(sel_icon[i]);
    
    		}
    
    

    Danke.

  5. Hallo,

    und zwar möchte ich eine unbekannte Anzahl von Buttons mit samt der Action in einer Schleife erstellen, jedoch gibt es nun folgendes Problem:

    Die Buttons erstellt er mir wunderbar, hochzählend so viele wie "icons" enthält, jedoch kennt er in der ActionListener Methode, welche er für jeden Button erstellen soll, den Zähler nicht mehr, dort sagt er mir immer dass es der maximal wert sei.

    Hier der entscheidende Code:

    
    for(i=0; i<icons.length; i++){
    
    			sel_icon[i] = new JButton(icons[i]);
    
    			iconList.add(sel_icon[i]);
    
    
    			System.out.println(i);
    
    
    			sel_icon[i].addActionListener(new ActionListener() {
    
    				public void actionPerformed(ActionEvent evt){
    
    					System.out.println(i);
    
    
    				}
    
    			});
    
    		}
    
    

    Hoffe mir kann jemand dabei helfen..

    Gruß

  6. Okay, habe das mit dem ersetzen usw. nun hinbekommen...

    habe jedoch nun ein anderes Problem...

    Also.. Ich habe ein JTextPane das einen Text aus einer Datei lädt und ausgibt, und dies jede Sekunde, sodass die Anzeige immer aktuell ist, auch wenn Änderungen an dem Text vorgenommen wurden.

    Während diesem Schritt ersetze ich nun des weiteren eine bestimmte Zeichenkette mit einem Icon.

    Nun folgendes Problem:

    Die Scrollbar springt immer nach dem aktualisieren wieder zu dem letzten ersetzten Icon. D.h.: wenn der Text nach dem Icon noch länger ist wie das TextPane, so sieht man einen bestimmten Teil des Textes nicht mehr... da der Scrollbalken beim Icon stehen bleibt.

    so sieht das ungefähr aus:

    messagesText.setText("");
    
    	    			messages = "";
    
    	    			try {
    
    	    				BufferedReader text_in = new BufferedReader(new FileReader(chat_path));
    
    	    				String zeile = null;
    
    
    	    				while ((zeile = text_in.readLine()) != null) {
    
    //	    					messagesText.append(zeile+"\n");
    
    	    					messages = messages.concat(zeile+"\n");
    
    	    				}
    
    	    				messagesText.setText(messages);
    
    
    	    				while(messagesText.getText().indexOf(":-)")>0){
    
    	    					messagesText.select(messagesText.getText().indexOf(":-)"), messagesText.getText().indexOf(":-)")+3);
    
    	    					messagesText.insertIcon(icon);
    
    	    				}
    
    
    
    
    	    			} catch (IOException ex) {
    
    	    				ex.printStackTrace();
    
    	    			}
    Also meine Frage: wie bekomme ich es hin, dass die Scrollbar trotzdem immer ganz unten ist bzw. nicht beim letzten icon stehen bleibt? Habe es schon mit
    messagesPanel.getViewport().setViewPosition(new java.awt.Point(0, 100000000000));

    am ende versucht, jedoch springt dann die scrollbar nur für den bruchteil einer sekunde nach ganz unten, danach wieder zum letzten icon.

    hoffe mir kann da jemand helfen.

    gruß

  7. Danke... aber das ist nicht das was ich brauche..

    "// Insert the image at the end of the text"

    klar damit kann ich ein icon in den text einfügen... das habe ich ja auch schon:

    textPanel.insertIcon(new ImageIcon("c:\\image.jpg"));

    aber ich will keines an das ende des textes einfügen, sondern an exakt der stelle an der eine bestimmte zeichenkette vorhanden ist, diese mit dem bild ersetzen....

    hoffe es kann mir jemand weiter helfen...

    danke shconmal.

  8. Nabend,

    Und zwar habe ich folgendes Problem:

    Ich laden einen Text aus einer Datei in ein JTextPane..

    Nun meine Frage:

    Wie kann ich denn beim Reinladen eine bestimmte Zeichenkette, z.B. ":-)", mit einem Icon ersetzen?

    Sodass dann anstatt :-) im Text das entsprechende Icon erscheint?

    Grüße dommes89

  9. Guten Tag.

    Ich habe folgendes vor:

    Und zwar möchte ich gerne eine seite erstellen auf der man folgende felder ausfüllen kann:

    "Name, Vorname" ; "Montag" ; "Dienstag" ; "Mittwoch" ; "Donnerstag" ; "Freitag"

    Und dann, wenn man auf bestätigen, klickt soll er in ein vorhandenes Excel-File die eingegeben Daten anhängen und zwar passend in die jeweilige Spalte.

    Da wollte ich gerne wissen wie das geht.. zum einen bräuchte ich den code für das Formular und zum andern den code womit er die daten in das Excel-File anhängt.

    Hoffe ihr könntet mir da helfen.

    Danke.

    P.S: Optimal wäre es natürlich, wenn in dem Excel-File schon die ganzen Namen stehen würden und er dann die angaben im formular in die entsprechende namen-zeile eintragen würde.

    Also beispiel:

    Im Excel-File steht:

    "Name, Vorname" "Montag" "Dienstag" "Mittwoch" "Donnerstag" "Freitag"

    "Müller, Thomas"

    "Meier, Hans"

    Nun trägt der Hans Meier seine Daten auf der Seite in die formular felder ein und bestätigt.

    Nun steht im Excel-File:

    "Name, Vorname" "Montag" "Dienstag" "Mittwoch" "Donnerstag" "Freitag"

    "Müller, Thomas"

    "Meier, Hans" "bla" "blo" "bla" "blu" ""

    gruß

  10. Guten Tag,

    Also nach dem, nun endlich behobenen Problem aus meinem anderen Thema , habe ich nun ein kleines weiteres Problem.

    Und zwar Navigieren wir ja in dem Skript aus dem anderen Thema durch eine XML-Datei mit Hilfe des XMLParsers... so nun ist da aber eine Stelle im XML-File zu der wir es nicht schaffen hinzunavigieren.

    Hier mal der Aufbau dieser Stelle:

    
    <item>
    
        <customfields>
    
    
    
    
        <customfield id="customfield_10055" key="bla">
    
    
           <customfieldname>BLABLABLO</customfieldname>
    
    
           <customfieldvalues>
    
              [COLOR="Red"]<customfieldvalue>BLUBBLUB</customfieldvalue>[/COLOR]
    
           </customfieldvalues>
    
    
        </customfield>
    
    
    
    
    
        <customfield id="customfield_103456" key="blu">
    
    
           <customfieldname>BLABLABLU</customfieldname>
    
    
           <customfieldvalues>
    
              [COLOR="Red"]<customfieldvalue>BLUBBLUBBLUB</customfieldvalue>[/COLOR]
    
           </customfieldvalues>
    
    
       </customfield>
    
    
    
    
       </customfields>
    
    </item>

    So... das ist das Schema des Problems welches in der XML-Datei ist...

    Was wir wollen, also den wert der uns am ende ausgegeben werden soll ist der text im Bereich "customfieldvalue" (rot) ...

    und wir wollen irgendwie mit hilfe der id in customfield dort hin navidieren, bekommen dies aber nicht so wirklich hin...

    hoffe da kann uns jemand helfen..

    vielen dank

  11. Also..

    Erst mal Tschuldigung für die verwechslung =) Dragon8 hat da schon recht.

    So nun zum Thema:

    Also wir haben soweit nun schon alles hinbekommen. Das aktuelle script sah nun wie folgt aus:

    
    import com.gargoylesoftware.htmlunit.WebClient
    
    import com.gargoylesoftware.htmlunit.BrowserVersion 
    
    import com.gargoylesoftware.htmlunit.html.*
    
    import java.io.*
    
    import java.sql.Timestamp;
    
    import java.text.SimpleDateFormat;
    
    import java.text.MessageFormat
    
    
    
    def timestamp = MessageFormat.format("{0,date,ddMMyyyy}", new Date())
    
    System.setProperty("timestamp", timestamp)
    
    
    
    def fileName='C:/xmlParserProjekt/'+timestamp+'_aufgabeFertig.csv'
    
    def url ='URL_ZUM_XML_FILE'
    
    def xmlContent = new XmlParser().parse(url).channel[0].item
    
    def tz=';'
    
    def XmlContent
    
    
    println 'Current source: '+url
    
    println 'Current separator: '+tz
    
    println ''
    
    println 'Starting program: ...'
    
    println ''
    
    println ''
    
    
    
    xmlContent.each
    
    {
    
      area -> XmlContent+=area.title.text()+tz+area.link.text()+tz+area.description.text()+tz+area.environment.text()+tz+area.key.text()+tz+area.summary.text()+tz+area.type.text()+tz+area.priority.text()+tz+area.status.text()+tz+area.resolution.text()+tz+area.assignee.text()+tz+area.reporter.text()+tz+area.created.text()+tz+area.updated.text()+tz+area.fixVersion.text()+tz+area.due.text()+tz+area.comments.text()+tz+area.attachments.text()+tz+area.subtasks.text()+tz+area.customfields.text()+tz+'\n'		
    
    }
    
    println 'File '+url+' executed.'
    
    
    
    saveTextFile(XmlContent,fileName)
    
    
    public static void saveTextFile(contents,fileName2) throws IOException {
    
    	 PrintWriter out = new PrintWriter(new FileWriter(fileName2));
    
    	 out.print(contents);
    
    	 out.close();
    
    	 println 'File '+fileName2+' created.'
    
    	}
    
    println ''
    
    println ''
    
    println 'Finished!'
    
    
    So... alles klappt wunderbar: Die Daten, welche die XML-Datei enthält werden aus der XML-Datei herausgefiltert und in eine CSV-Datei geschrieben und jeweils mit ";" getrennt. Nun wollen wir jedoch das ganze für die Kommandozeile anpassen um es z.B. mit dem "at"-Befehl immer zu einem bestimmten Zeitpunkt laufen zu lassen. Und zusätzlich das ganze noch allgemein anpassen. Sprich dem Benutzer die möglichkeit geben, bei der Eingabe den Pfad zum XML-File, das Trennzeichen und den Ziel-Dateinamen selbst zu bestimmen. Jedoch soll dabei der Pfad zu dem XML-File notwendig sein, Trennzeichen und Ziel-Dateinamen aber nur optional und bei nicht-eingabe die vordefinierten daten genutzt werden. Allerdings läuft unser script jetzt nur sofern wir alle 3 Angaben gemacht haben. Sonst erscheinen folgende Fehler: - Wenn man nur die URL zum XML-File angibt: url wurde angegeben Caught: java.lang.ArrayIndexOutOfBoundsException: 1 at XMLConverter_v1.40.run(XMLConverter_v1.40.groovy:32) at XMLConverter_v1.40.main(XMLConverter_v1.40.groovy) - URL und Trennzeichen: url wurde angegeben trennzeichen wurde angegeben Caught: java.lang.ArrayIndexOutOfBoundsException: 2 at XMLConverter_v1.40.run(XMLConverter_v1.40.groovy:44) at XMLConverter_v1.40.main(XMLConverter_v1.40.groovy) ...... Hier das aktuelle script:
    
    import com.gargoylesoftware.htmlunit.WebClient
    
    import com.gargoylesoftware.htmlunit.BrowserVersion 
    
    import com.gargoylesoftware.htmlunit.html.*
    
    import java.io.*
    
    import java.sql.Timestamp;
    
    import java.text.SimpleDateFormat;
    
    import java.text.MessageFormat
    
    
    
    def fileName
    
    def url
    
    def tz
    
    def var = 0
    
    
    
    def timestamp = MessageFormat.format("{0,date,ddMMyyyy_HHmm}", new Date())
    
    System.setProperty("timestamp", timestamp)
    
    
    
    if(args[var] != null && args[var].indexOf('.xml')) //Check if argument is set and if it contains the .xml filextension
    
    {
    
    
    	url=args[var] // First argument is url to document
    
    	println 'url wurde angegeben'
    
    	var++ //If right type of argument is set go go next argument index
    
    } else {
    
    	//otherwise it's this Static path
    
    	url='URL_ZUM_XML_FILE'
    
    		println 'URL wurde nicht gesetzt oder falsch eingebeben. URL ist jetzt '+url
    
    }
    
    
    if(args[var] != null && args[var].length()==1) 
    
    {
    
    	//Second argument is seperator
    
    	println 'trennzeichen wurde angegeben'
    
    	tz=args[var]
    
    	var++//If right type of argument is set go go next argument index
    
    } else {
    
    	tz=';' //otherwise it's ;
    
    	println 'Trennzeichen wurde nicht gesetzt oder ist zu lang. Maximal 1 Zeichen. Trennzeichen ist '+tz
    
    
    }
    
    
    if(args[var] != null && args[var].length()>2) 
    
    {
    
    	println 'Dateiname wurde angegeben'
    
    	fileName='C:/xmlParserProjekt/'+args[var]+timestamp+'.csv'	//Filename is third argument
    
    
    } else {
    
    	fileName='C:/xmlParserProjekt/'+timestamp+'_jira'+'.csv'	//Or "timestamp"_jira.csv
    
    	println fileName+'Dateiname wurde nicht gesetzt. Automatisch generierter Dateiname ist: '+fileName
    
    }
    
    
    
    def xmlContent = new XmlParser().parse(url).channel[0].item
    
    def XmlContent
    
    
    println 'Current source: '+url
    
    println 'Current separator: '+tz
    
    println ''
    
    println 'Starting program: ...'
    
    println ''
    
    println ''
    
    
    
    xmlContent.each
    
    {
    
      area -> XmlContent+=area.title.text()+tz+area.link.text()+tz+area.description.text()+tz+area.environment.text()+tz+area.key.text()+tz+area.summary.text()+tz+area.type.text()+tz+area.priority.text()+tz+area.status.text()+tz+area.resolution.text()+tz+area.assignee.text()+tz+area.reporter.text()+tz+area.created.text()+tz+area.updated.text()+tz+area.fixVersion.text()+tz+area.due.text()+tz+area.comments.text()+tz+area.attachments.text()+tz+area.subtasks.text()+tz+area.customfields.text()+tz+'\n'		
    
    }
    
    println 'File '+url+' executed.'
    
    //println XmlContent
    
    
    saveTextFile(XmlContent,fileName)
    
    
    public static void saveTextFile(contents,fileName2) throws IOException {
    
    	 PrintWriter out = new PrintWriter(new FileWriter(fileName2));
    
    	 out.print(contents);
    
    	 out.close();
    
    	 println 'File '+fileName2+' created.'
    
    	}
    
    println ''
    
    println ''
    
    println 'Finished!'
    
    

    Ich hoffe jetzt ist alles klar.

    vielen dank.

  12. Guten Tag,

    Ich bräuchte etwas hilfe für das folgende problem:

    Ich möchte ein Java/Groovy script schreiben mit dem ich eine bestimmte xml-datei in eine csv-datei umwandeln kann...

    Soll heißen:

    Die daten die in der XML datei stehen sollen ohne die ganzen Tags usw. später in einer csv datei aufgelistet werden. Sprich nur die informationen.

    Das ganze soll möglichst ohne anforderungen geschehen... sprich keine extra programme oder andere externe anwendungen... möglichst nur per java script.

    hoffe da kann mir wer weiterhelfen.

    grüße

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...