Bitte Testen: Mein Multi-File Editor

Status
Nicht offen für weitere Antworten.

michi2

Bekanntes Mitglied
Hallo,
Ich hab hier schon mal meinen Editor vorgestellt.
Nun habe ich eine "Multifile"-Version, soll heißen er kann mehrere Dateien gleichzeitig öffnen, programmiert.
Trotz dem das ich befürchte das ihr den Lösungsweg als "unproffessionel" bezeichnen werdet, will ich von euch wissen was ihr davon haltet.
Denn schließlich funktioniert meine Methode und schnell ist sie auch noch!
Ihr findet Code + fertig compiliertes Programm unter people.freenet.de/m.schoenitzer/MultiFile.zip!
Die interessanten Codestücke sind:
* am Ende der Datei Michis_Editor.java (Klasse cfile)
* in der Datei MultiFile.java
* und vielleicht noch in GrundfunkActionLauscher.java

Ich würde mich auf Antworten freuen.
Danke,
Michi


PS: Benutze jetzt extra Konqueror um euch einigermaßen vor Rechtschreibfehler zu schützen ;)
 
R

Roar

Gast
mach doch halt mal ne jar draus, ich persönlich hab jedenfalls keine lust das programm extra irgendwo abzuspeichern und dann über die konsole zu starten :/
 

michi2

Bekanntes Mitglied
Würd ich gern schaffe es aber nicht, bin genau der beschreibung in der FAQ gegangen, aber die Jar-Datei startet nicht. Hab das hir schon mal in nem extra Threat gefragt, aber da hat mir auch nimand geantwortet.
Zum starten liegt ein script bei: damit kannst du es unter Linux direct starten; unter Win musst dem script erst ein .bat verpassen, schon läufts.


Die zentralen Code-Teile sind:
1.) Hier werden alle einstellungen zu den geöfneten Dokumenten gespeichert:
Code:
class cfile
   {
      String suchen;
      public int suchindex = -1;
      
      // globale Variablen innerhalb der Klasse
      public File einausgabedatei;           			// zu ladende/speichernde Datei
      public String m_dateiname_Name = "";          		// reiner Name
      public String m_dateiname_Path = "";           		// reiner Pfad
      boolean m_dateiname_gueltig = false;
      public boolean search_up = false;
      public boolean bgenau = false;
      public boolean bcursor = false;
      //JMenuItem item3_2;
      public String m_aktText;      			// aktueller Text in der TextArea
      String m_alterText;      				// alter Text der TextArea
      String[] m_alterTextNr = new String[10];      		// alter Text der TextArea
      LinkedList m_undoTextNr = new LinkedList();		// Undo Text der TextArea
      LinkedList last_used = new LinkedList();		//Lastused
      JMenuItem[] item1_6_ = new JMenuItem[4];		//Die Lastused eintr�ge
      int[] markerNr = new int[127];			// Die Markerwerte
      JMenuItem[] item2_11b_ = new JMenuItem[127];	//Die 'gehe zu Marker' eintr�ge
      public JMenuItem[] item2_11c_ = new JMenuItem[127];	//Die 'L�se Marker' eintr�ge
      byte m_undoNumber = 0;			//Aktuelle undo-Position
      byte markerNumber = 0;			//Anzahl der Marker
      boolean gespeichert = false;
      public pk.CTextAnzeige m_textanzeige;   	// die eigentliche TextArea
      public JTextArea TA;
      JPanel p_neu;
      JComboBox m_fonts,m_styles;    	 	// Auswahl von Fonttyp, Stil und
      JComboBox m_farben;             			// Farbe
      JComboBox m_groese;			//Groese
      JScrollPane scroll;

      int cursorposition;
   
   
   void laden()
      {
      Michis_Editor.suchen = suchen;
      Michis_Editor.suchindex = suchindex;
      Michis_Editor.einausgabedatei = einausgabedatei;
      Michis_Editor.m_dateiname_Name = m_dateiname_Name;
      Michis_Editor.m_dateiname_Path = m_dateiname_Path;
      Michis_Editor.m_dateiname_gueltig = m_dateiname_gueltig;
      Michis_Editor.search_up = search_up;
      Michis_Editor.bgenau = bgenau;
      Michis_Editor.bcursor = bcursor;
      Michis_Editor.m_aktText = m_aktText;
      Michis_Editor.m_undoTextNr = m_undoTextNr;
      Michis_Editor.last_used = last_used;
      Michis_Editor.item1_6_ = item1_6_;
      Michis_Editor.item2_11c_ = item2_11c_;
      Michis_Editor.m_undoNumber = m_undoNumber;
      Michis_Editor.markerNumber = markerNumber;
      Michis_Editor.gespeichert = gespeichert;
      Michis_Editor.TA = TA;
      Michis_Editor.p_neu = p_neu;
      Michis_Editor.m_fonts = m_fonts;
      Michis_Editor.m_styles = m_styles;
      Michis_Editor.m_farben = m_farben;
      Michis_Editor.m_groese = m_groese;
      Michis_Editor.scroll = scroll;
      Michis_Editor.m_textanzeige = m_textanzeige;
      Michis_Editor.m_textanzeige.setText(m_aktText);
      Michis_Editor.m_textanzeige.setCaretPosition(cursorposition);

      if(!m_dateiname_Name.equals(""))
         Michis_Editor.e1.setTitle("Michi's Editor 3 - " + m_dateiname_Name);
      else
         Michis_Editor.e1.setTitle("Michi's Editor 3");
      }

   void speichern()
      {
      suchen =	 Michis_Editor.suchen;
      suchindex =	 Michis_Editor.suchindex;
      einausgabedatei =	 Michis_Editor.einausgabedatei;
      m_dateiname_Name =	 Michis_Editor.m_dateiname_Name;
      m_dateiname_Path =	 Michis_Editor.m_dateiname_Path;
      m_dateiname_gueltig =	 Michis_Editor.m_dateiname_gueltig;
      search_up =	 Michis_Editor.search_up;
      bgenau =	 Michis_Editor.bgenau;
      bcursor =	 Michis_Editor.bcursor;
      m_aktText =	 Michis_Editor.m_aktText;
      m_undoTextNr =	 Michis_Editor.m_undoTextNr;
      last_used =	 Michis_Editor.last_used;
      item1_6_ =	 Michis_Editor.item1_6_;
      item2_11c_ =	 Michis_Editor.item2_11c_;
      m_undoNumber =	 Michis_Editor.m_undoNumber;
      markerNumber =	 Michis_Editor.markerNumber;
      gespeichert =	 Michis_Editor.gespeichert;
      TA =	 Michis_Editor.TA;
      p_neu =	 Michis_Editor.p_neu;
      m_fonts =	 Michis_Editor.m_fonts;
      m_styles =	 Michis_Editor.m_styles;
      m_farben =	 Michis_Editor.m_farben;
      m_groese =	 Michis_Editor.m_groese;
      scroll =	 Michis_Editor.scroll;
      m_aktText = Michis_Editor.m_textanzeige.getText();
     m_textanzeige =	 Michis_Editor.m_textanzeige;
     cursorposition = m_textanzeige.getCaretPosition();
      }
   void println()
   {
     System.out.println("cfile, TAtext: " + m_textanzeige.getText());
     System.out.println("cfile, text: " + m_aktText);
   }
 }
2.)Für eine neue Datei wird dann folgendes benützt:
Code:
   public static void newfile()
      {
      m_textanzeige.setText("");
      offenedateien[dateinummer] = new cfile();
      offenedateien[dateinummer].speichern();
      lastdatnummer = dateinummer;
      offenedatcb.addItem("Neues Dokument " + neuesdoknummer);
      offenedatcb.setSelectedIndex(dateinummer);
      dateinummer++;
      lastdatnummer = dateinummer-1;
      neuesdoknummer++;
      Michis_Editor.e1.setTitle("Michi's Editor");
      }
3.)Und zum Öffnen:
Code:
   public static void open()
      {
      offenedateien[dateinummer] = new cfile();
      offenedateien[dateinummer].speichern();
      System.out.println("1");
      lastdatnummer = dateinummer;
      System.out.println("2: "+ dateinummer);
      offenedatcb.addItem(m_dateiname_Name);
      offenedatcb.setSelectedIndex(dateinummer);
      System.out.println("3");
      dateinummer++;
      lastdatnummer = dateinummer;
      }
 
B

Beni

Gast
Manchmal wird ein Thread auch einfach übersehen... aber merk dir: wenn du was von anderen haben willst, mach es ihnen so einfach wie möglich. Das mit dem ".bat" hinzufügen ist nicht so dolle :wink:

Ich habe mich mal auf Fehlersuche gemacht (gniarrharhar, ich liebe es, böse zu sein), und gnadenlos aufgeschrieben was mir nicht gefällt:

Laufzeit:
Wenn man gar nichts eingiebt, und dann bei "Formatieren" rumdrückt, gibt es massenweise Exceptions.
Wenn man "Java > Compile" macht, und dann "Abbrechen" drückt, wird nicht abgebrochen.

Vom Code her:
Rechtschreibefehler in einem Klassennamen... das könntest du besser :wink: "Suchen_Erstezen"

DU HAST ZUVIELE STATIC VARIABLEN IN DEINEM PROGRAMM (wollte ich nurmal betonen). In "Michis_Editor" solltest du mal grosszügig sämtliche statics rauslöschen. "static" ist das, was zwischen dir und OOP steht...

Eine einfache, aber gute, Regel ist: jede Methode sollte auf dem Bildschirm Platz haben. Versuch das mal umzusetzen (z.B. im JavaActionLauscher), du wirst wesentlich mehr Freude an deinem Programm haben. Besonders wenn du mal was reparieren musst.

MultiFile funktioniert, soweit sogut. Aber: lösch mal alle statics raus. Und: eine Exception unterschlagen zeugt nicht von gutem Stil "catch(ArrayIndexOutOfBoundsException AIOOBEx){}". Eine Exception bedeutet, dass du einen Fehler einprogrammiert hast. Eine wertvolle Information die es auszuschöpfen gilt, um das Programm zu verbessern.
Wieso du MultiFile von Michis_Editor erben lässt, wurde mir nicht ganz klar?

GrundFunktionLauscher: Die Vererbung ist hier wirklich sehr, sehr fragwürdig. Der Lauscher ist schliesslich kein Editor... Und die actionPerformed-Methode ist ein bisschen lang geworden.


Ich würde dir empfehlen:
- Pro Button oder MenuItem einen ActionListener schreiben
- Auf sämtliche "statics" verzichten (bis auf das "public static main" natürlich :wink:)
- Vererbung nur für "x ist ein y" einsetzen, und nicht für "x benötigt statische Variablen aus y".
- Referenzen sauber verknüpfen (was dann "static" überflüssig macht).


Schlusswort: Übung macht den Meister. Immerhin kannst du bereits ein Programm schreiben, damit kannst du schon weit mehr als der Durchschnittsbürger. Schreib dir "Michis Editor 2", und lerne aus all den Fehlern und Problemen der ersten Version. Ich bin mir sicher, du hast selbst einiges bemerkt was ich eben angekreidet habe.
 

michi2

Bekanntes Mitglied
Beni hat gesagt.:
Manchmal wird ein Thread auch einfach übersehen... aber merk dir: wenn du was von anderen haben willst, mach es ihnen so einfach wie möglich. Das mit dem ".bat" hinzufügen ist nicht so dolle :wink:
Das macht die Linuxer aber nicht glücklich.

Wenn man gar nichts eingiebt, und dann bei "Formatieren" rumdrückt, gibt es massenweise Exceptions.
Wenn man "Java > Compile" macht, und dann "Abbrechen" drückt, wird nicht abgebrochen.
Danke für den hinweis, werd ich verbessern.

Vom Code her:
Rechtschreibefehler in einem Klassennamen... das könntest du besser :wink: "Suchen_Erstezen"
Rechtschreibung ist definitiv nicht mein Ding, bin aber auch nachgewissener Legasteniker

DU HAST ZUVIELE STATIC VARIABLEN IN DEINEM PROGRAMM (wollte ich nurmal betonen). In "Michis_Editor" solltest du mal grosszügig sämtliche statics rauslöschen. "static" ist das, was zwischen dir und OOP steht...
Ja, ich weiss werd das machen, haben mir schon mehrere hir im Forum gesagt.

Eine einfache, aber gute, Regel ist: jede Methode sollte auf dem Bildschirm Platz haben. Versuch das mal umzusetzen (z.B. im JavaActionLauscher), du wirst wesentlich mehr Freude an deinem Programm haben. Besonders wenn du mal was reparieren musst.
was ist wen ich dir sage ich benütze Schriftgröße 4? ;)

MultiFile funktioniert, soweit sogut.
Und du "meckerst" nicht über obengeposteden Code??? *aufatem*

Wieso du MultiFile von Michis_Editor erben lässt, wurde mir nicht ganz klar?
GrundFunktionLauscher: Die Vererbung ist hier wirklich sehr, sehr fragwürdig. Der Lauscher ist schliesslich kein Editor...
- Vererbung nur für "x ist ein y" einsetzen, und nicht für "x benötigt statische Variablen aus y".

- Referenzen sauber verknüpfen (was dann "static" überflüssig macht).
Faulheit! Werds aber ändern!

Ich würde dir empfehlen:
- Pro Button oder MenuItem einen ActionListener schreiben
Ist das nicht ein bischen zu drastisch? Schlieslich haben viel "Reacktionen" nur 1-3 Zeilen.

Schlusswort: Übung macht den Meister. Immerhin kannst du bereits ein Programm schreiben, damit kannst du schon weit mehr als der Durchschnittsbürger. Schreib dir "Michis Editor 2", und lerne aus all den Fehlern und Problemen der ersten Version. Ich bin mir sicher, du hast selbst einiges bemerkt was ich eben angekreidet habe.
Willst du damit sagen ich soll nen neuen Editor programmiern? Falls ja: nein, war zu fiel Arbeit.
Oder meinst du ich soll die nächste Version gründlich überarbeiten?
Dies ist die MultiFile-Version (bessere Nammen?), paraell zu dieser hab ich die nicht Multifile-Version weiterprogrammiert.
Ich wollte hir hauptsächlich wissen ob diese Art wie ich die Multifile-Version umgesetzt habe in ortnung ist?
Wenn ja führe ich beide "Projekte" wider zusammen und mertze alle gennanten Fehler (und mehr) nacheinander aus.
Der Editor ist übrigens schon in der Version 3.5.0.x und ja ich weiß ich war am Anfang zu großzügig mit neuen Versionsnummern.


Weitere Bekannte Fehler/Einschrenkungen:
-Druckfunktion druckt nur 1 Seite
-Variablen-Gucker funktioniert nicht ganz
-Variablen-Gucker zeigt nur Primitive Variablen, Strings und deren Arrays an
-compiele funktion hängt immer wieder (hauptsächlich bei mehr als 100 Fehlern)
-in der akt. Version wird, im gegensatz zu älteren Versionen, der Titel der geladenen Datei nicht mehr im Titel angezeigt...
-beim Exportieren als HTML werden Sonderzeichen nicht in HTLM-Entries umgewandelt

Geplannte Features:
Highligthing
Rechtschreibkorrektur (->Jazzy, auch übersehen oder kennt das selbst ihr nicht)

Danke für den sehr informativen Test! :)
 
B

Beni

Gast
Ich würde dir empfehlen:
- Pro Button oder MenuItem einen ActionListener schreiben
Ist das nicht ein bischen zu drastisch? Schlieslich haben viel "Reacktionen" nur 1-3 Zeilen.
Entweder hat man "zuviel" oder "zuwenige" Klassen. "zuviel" ist immer besser als "zuwenig" (wobei ich damit nicht sagen will, dass "zuviel" gut ist...). Derzeit ist bei dir aber noch "zuwenig" :wink:

Ja, für 1-3 Zeilen ist eine ganze Klasse etwas übertrieben. Gut ist, wenn du hier Gemeinsamkeiten suchst, und mehrere Aktionen zusammenfassen kannst (z.B. "speichern" und "speichern als..." sind sehr ähnlich). Aber grundsätzlich ist halt jedes dieser "if's" in dem ActionListener eine potentielle Fehlerquelle, und je weniger du davon hast, desto besser. Bedenk auch, dass es mit einer IDE sehr einfach ist, eine neue Klasse zu schreiben - sehr viel zusätzlichen Aufwand gibt das alles nicht.


Willst du damit sagen ich soll nen neuen Editor programmiern? Falls ja: nein, war zu fiel Arbeit.
Jop, genau das meine ich :bae:
Als meine Java-Karriere begann, wollte ich ein Programm schreiben, das etwas ungeheur komplexes kann. Das Ergebnis war natürlich ernüchternd...
Also schrieb ich das Programm nocheinmal, und nocheinmal. Und bei jedem dieser Sprünge wurde das Programm wesentlich besser, da ich vom vorherigen Versuch wusste, was diesmal anders sein soll.
Die jeweils nächsten Versionen benötigten nicht mehr Zeit. Denn wenn man etwas zum zweiten mal schreibt, geht es wesentlich leichter. Bei alldem ist nur wichtig: es wird nichts vom alten Code kopiert.

Tjo, und ich denke dir würde es genau gleich gehen. Gigantische Fortschritte bei vergleichsweise moderatem Aufwand.

Oder meinst du ich soll die nächste Version gründlich überarbeiten?
Das wäre auch möglich, aber die Gefahr ist gross, dass du auf halbem Weg stehen bleibst. Und mit einem halb-reparierten Programm arbeiten... irgendwann fühlt sich das an, wie ausgelutschter Kaugummi.

Weitere Bekannte Fehler/Einschrenkungen:
-Druckfunktion druckt nur 1 Seite
-Variablen-Gucker funktioniert nicht ganz
-Variablen-Gucker zeigt nur Primitive Variablen, Strings und deren Arrays an
-compiele funktion hängt immer wieder (hauptsächlich bei mehr als 100 Fehlern)
-in der akt. Version wird, im gegensatz zu älteren Versionen, der Titel der geladenen Datei nicht mehr im Titel angezeigt...
-beim Exportieren als HTML werden Sonderzeichen nicht in HTLM-Entries umgewandelt

Geplannte Features:
Highligthing
Rechtschreibkorrektur (->Jazzy, auch übersehen oder kennt das selbst ihr nicht)
Eins nach dem anderen! Erst das Grundsystem, dann kommen die coolen Features. Und wenn das Grundsystem richtig designed wurde, können die Features auch ohne Probleme hinzugefügt werden :wink:
(Ich hab auch ein paar Jährchen benötigt, bis ich das akzeptierte).

Danke für den sehr informativen Test! :)
Bitte
 

Lim_Dul

Top Contributor
Beni hat gesagt.:
Ich würde dir empfehlen:
- Pro Button oder MenuItem einen ActionListener schreiben
Ist das nicht ein bischen zu drastisch? Schlieslich haben viel "Reacktionen" nur 1-3 Zeilen.
Entweder hat man "zuviel" oder "zuwenige" Klassen. "zuviel" ist immer besser als "zuwenig" (wobei ich damit nicht sagen will, dass "zuviel" gut ist...). Derzeit ist bei dir aber noch "zuwenig" :wink:

Ja, für 1-3 Zeilen ist eine ganze Klasse etwas übertrieben. Gut ist, wenn du hier Gemeinsamkeiten suchst, und mehrere Aktionen zusammenfassen kannst (z.B. "speichern" und "speichern als..." sind sehr ähnlich). Aber grundsätzlich ist halt jedes dieser "if's" in dem ActionListener eine potentielle Fehlerquelle, und je weniger du davon hast, desto besser. Bedenk auch, dass es mit einer IDE sehr einfach ist, eine neue Klasse zu schreiben - sehr viel zusätzlichen Aufwand gibt das alles nicht.

Alternativ wenigstens Code der Form:

Code:
if (command.equals("Befehl1")) {
  methode1();
} else if (command.equals("Befehl2)) {
  methode2();
} else if {
...
} else {
  System.err.println("Hier wollte ich aber garnicht sein, irgendwas ist schiefgelaufen, der Befehl "+command+" wird nicht bearbeitet");
}
Damit sind die Sachen deutlich voneinander getrennt.

Eins nach dem anderen! Erst das Grundsystem, dann kommen die coolen Features. Und wenn das Grundsystem richtig designed wurde, können die Features auch ohne Probleme hinzugefügt werden :wink:
(Ich hab auch ein paar Jährchen benötigt, bis ich das akzeptierte).

Dito. Man hat tolle Ideen, was man machen will und irgendwann stellt man fest, dass der Code, den man produziert hat, einfach grauenhaft ist. Man findet sich irgendwann nicht mehr zurrecht, Erweiterungen oder neue Features an der einen Ecke bewirken Fehler an einer anderen Ecke. Irgendwann sieht man dann ein, dass man besser neu anfängt, sich diesmal Zeit vorher für das Design nimmt und man hinterher besseren Code. Dieser Prozess endet auch nie, nur werden die Schritte die man macht, meistens kleiner.
 

foobar

Top Contributor
Von mir auch ein paar Tips für die Zukunft:

- Dir fehlt eine richtige Projektstruktur. Du brauchst auf jeden Fall einen src und einen bin-Ordner, alles andere ist Käse.

- Bitte keinen Deutschenbezeichner verwenden, das bringt nur Probleme und sieht doof aus.

- Halte dich wenn möglich an den Javastyleguide. Über die Einrückungen kann man sich streiten, aber der Rest ist essentiell.

- Verwende Ant zum bauen deiner Applikation, das macht vieles einfacher.

- Anstatt Batch und Shellscript solltest du ein Jar bauen(Ant hilft dir dabei), das kann man überall ausführen.

- Entweder du entscheidest dich für deutsche Beschriftungen in der GUI oder nicht, aber bilinguale Anwendungen schrecken mich ab ;-)

- Man kann zwar neue Dateien erstellen, aber nicht zwischen den Instanzen hin und herschalten.

- Bei den Menüpunkten Hilfe und Über würde ich ein Popup öffnen, ansonsten bleibt das Textfeld später uach schwarz.

HTH

Viele Grüße
foobar
 

michi2

Bekanntes Mitglied
foobar hat gesagt.:
Von mir auch ein paar Tips für die Zukunft:
- Dir fehlt eine richtige Projektstruktur. Du brauchst auf jeden Fall einen src und einen bin-Ordner, alles andere ist Käse.

Bin ganz deiner Meinung, wie kann ich javac eien Pfad geben in den es die compilierten Dateien speichern soll?

- Halte dich wenn möglich an den Javastyleguide. Über die Einrückungen kann man sich streiten, aber der Rest ist essentiell.
Giebts den irgentwo zusammengefasst auf Deutsch?

- Verwende Ant zum bauen deiner Applikation, das macht vieles einfacher.
Sorry, kenn ich nur vom Namen...

- Anstatt Batch und Shellscript solltest du ein Jar bauen(Ant hilft dir dabei), das kann man überall ausführen.
Schon klar, nur hatte ich da wiegesagt Probleme.

- Man kann zwar neue Dateien erstellen, aber nicht zwischen den Instanzen hin und herschalten.
Hä? Natürlich kann mann, oder was meinst du mit Instanz?

- Bei den Menüpunkten Hilfe und Über würde ich ein Popup öffnen, ansonsten bleibt das Textfeld später uach schwarz.
Ist nur bei Über, werd ich aber ändern


Beni hat gesagt.:
Als meine Java-Karriere begann, wollte ich ein Programm schreiben, das etwas ungeheur komplexes kann. Das Ergebnis war natürlich ernüchternd...
Also schrieb ich das Programm nocheinmal, und nocheinmal. Und bei jedem dieser Sprünge wurde das Programm wesentlich besser, da ich vom vorherigen Versuch wusste, was diesmal anders sein soll.
Die jeweils nächsten Versionen benötigten nicht mehr Zeit. Denn wenn man etwas zum zweiten mal schreibt, geht es wesentlich leichter. Bei alldem ist nur wichtig: es wird nichts vom alten Code kopiert.

Tjo, und ich denke dir würde es genau gleich gehen. Gigantische Fortschritte bei vergleichsweise moderatem Aufwand.
Nun so war das bei mir nie! In meiem Java-Buch wurde ein kleiner Editor (400 Zeilen) programmiert, ich hab dann zum lernen den Editor immer weiter und weiter ausgebaut (jetzt >5000 Zeilen). Ich hatte eigentlich vor nach dem "Haut-Erneuerungsprinzip" zu arbeiten:
Die Haut erneuert sich in spätersten 6 Jahren komplett, mann verliert aber nie ganze Teile, nur einzelne Schuppen...
Bei meinem Java-Programm kann ich eine Datei/Klasse komplett über den Haufen werfen und sie neu programmieren, so Bleibt irgent wann nix mehr von ührsprünglichen (~jetzigen) Code übrig.
So hatte ich für die Zukunft geplannt: (Chronologisch)

  • *Wieder Vereinigung von "Singelfile" und Multifile-Version
    *Teilung des Codes auf mehr Klassen und Dateien
    *löschen aller statics! Und der unsinigen Vererbung von MichisEditor!
    *Komplettes ausgliedern + komplettes löschen und neuschreibens der Undo/Redo-funtion
    *Komplettes ausgliedern + komplettes löschen und neuschreibens der Compile-funtion
    *Komplettes ausgliedern + komplettes löschen und neuschreibens der Drucker-funtion
    *Umsteigen von JTextArea auf JTextPane/JEditorPane -> möglichkeit der realisierrung von Highliting

Ich denke diese Vorgehensweise würde sehr viel schneller und effizenter gehen, da ich nie längere Zeit auf einmahl Programmieren kann (Schule, Website, C++, Root, POV-Ray.......)
Was denkt ihr davon?

Um noch mal auf die Multifile-funktion zurück zu kommen, wie gut und proffessionell ist der Ansatz? Mir fällt nähmlich kein besserer ein!
 

foobar

Top Contributor
Hä? Natürlich kann mann, oder was meinst du mit Instanz?
Gibt es eine Möglichkeit z.b. über ein JTabbedpane eine bestimmte Datei anzusprechen, so daß man zwischen den einzelnen geöffneten Dateien hin und her schalten kann? So wie man das von Textpad oder Ultraedit kennt. Also jede geöffnete Datei ist ein JInternalFrame und hat einen Tab in eineme JTabbedpane, wenn man auf einen bestimmten Tab klickt, wird diese Datei in den Vordergrund geholt.

Bin ganz deiner Meinung, wie kann ich javac eien Pfad geben in den es die compilierten Dateien speichern soll?
Da du mittlerweile weißt wie man ein Programm auf der Konsole kompiliert, rate ich dir eine IDE z.b. Eclipse zu verwenden. Dann ist auch die Antintegration kein Thema mehr. Wenn du willst baue ich dir aus dem Code ein fertiges Eclipseprojekt mit Antscript, dann haste du eine saubere Basis.

Giebts den irgentwo zusammengefasst auf Deutsch?
Google ist dein Freund ;-)
 

michi2

Bekanntes Mitglied
foobar hat gesagt.:
Hä? Natürlich kann mann, oder was meinst du mit Instanz?
Gibt es eine Möglichkeit z.b. über ein JTabbedpane eine bestimmte Datei anzusprechen, so daß man zwischen den einzelnen geöffneten Dateien hin und her schalten kann? So wie man das von Textpad oder Ultraedit kennt. Also jede geöffnete Datei ist ein JInternalFrame und hat einen Tab in eineme JTabbedpane, wenn man auf einen bestimmten Tab klickt, wird diese Datei in den Vordergrund geholt.
Ja! Also ich will ja nix gegen deine Augen oder deinen Bildschirm sagen.... ;)

Bin ganz deiner Meinung, wie kann ich javac eien Pfad geben in den es die compilierten Dateien speichern soll?
Da du mittlerweile weißt wie man ein Programm auf der Konsole kompiliert, rate ich dir eine IDE z.b. Eclipse zu verwenden. Dann ist auch die Antintegration kein Thema mehr. Wenn du willst baue ich dir aus dem Code ein fertiges Eclipseprojekt mit Antscript, dann haste du eine saubere Basis.
1.)Kannst du mir erklären was Ant ist
2.)Wofür das ganze? Alles was man braucht ist ein Editor(bei mir mein eigener), javac und ne Konsole! hab den javac parameter gefunden: "-d directory", in mein Kompieler-script reingeschrieben, und schon funktioniert das ganze! (Mit nem Profiler kann ich sie dann noch auf Geschwindigkeit optimieren)
Ich Öffnen und bearbeite die Dateien mit dem Editor, compiliere und starte sie mit den entsprchenden scripten, lass mir dabei dei class dateien in ein anderes Verzeichnis legen, und mache mit jar ein Jar-Achiv daraus?
In ne IDE muss ich mich erst einarbeiten, sie bindet mich an ein OS, ich muss sie auf allen PCs installieren mit dennen ich arbeiten will, ich muss mich an sie gewöhnen (für mich sind die unterschiedlichen Fonts bei Win und Linux schon nervend) und sie verbrauchen Platz!

Danke tortzdem an alle schon mal! Bitte um kommentare über die Multifile-Funktion!
 
B

Beni

Gast
michi2 hat gesagt.:
1.)Kannst du mir erklären was Ant ist
Kennst du "make"? Ant ist was ganz ähnliches: mit einer Datei bestimmt man ein paar Aktionen die erledigt werden sollen (Kompilieren, Dokumentation erstellen, Jar's packen...), und kann dann mit einem Klick alles machen lassen.
IMHO macht das aber erst Sinn wenn auch wirklich viele Aktionen gemacht werden müssen :wink:

2.)Wofür das ganze? Alles was man braucht ist ein Editor(bei mir mein eigener), javac und ne Konsole! hab den javac parameter gefunden: "-d directory", in mein Kompieler-script reingeschrieben, und schon funktioniert das ganze! (Mit nem Profiler kann ich sie dann noch auf Geschwindigkeit optimieren)
Ich Öffnen und bearbeite die Dateien mit dem Editor, compiliere und starte sie mit den entsprchenden scripten, lass mir dabei dei class dateien in ein anderes Verzeichnis legen, und mache mit jar ein Jar-Achiv daraus?
In ne IDE muss ich mich erst einarbeiten, sie bindet mich an ein OS, ich muss sie auf allen PCs installieren mit dennen ich arbeiten will, ich muss mich an sie gewöhnen (für mich sind die unterschiedlichen Fonts bei Win und Linux schon nervend) und sie verbrauchen Platz!
Fast alle IDEs für Java sind platformunabhängig... und keine von ihnen benötigt Gigabytes Speicherplatz (selbst das Riesenprogramm Eclipse benötigt nur 100 MB).

Das hört sich nach "Was ich nicht kenne, interessiert mich nicht" an. Tja, dann will ich dich nicht weiter von Syntaxhighlighting, automatische Codevervollständig, Fehleranzeigen während der Eingabe, Vorschläge für Korrekturen, automatisches Importieren oder gar graphische Debugger erwärmen... ich meine, du machst dir hier unnötig viel Arbeit... :bae:
 

michi2

Bekanntes Mitglied
Werd mir mal Eclipse anschauen. Insofern würde ich das Angebot von foobar gern Annehmen, fals es noch gieldt. Weis aber nicht ob ich diese Features brauch...

Bitte um kommentare über die Multifile-Funktion!
 

foobar

Top Contributor
@Michi so ich hab dein Projekt mal etwas aufgeräumt:

- Buildscript erstellt mit dem man das Projekt kompilieren, javadoc erzeugen und ein ein bin und ein src-jar erstellen kann.

- Alle Html und Txtfiles in ein eigenes Package verschoben.

- Deprecated-Methoden (show(boolean b) durch setVisible(boolean b)) ersetzt

- Eclipseprojekt erstellt und etwas Ordnung gemacht. Die Quellen liegen jetzt in src die Klassen in bin. Ant erstellt beim aufuf von ant dist einen temporäten build und dist-Ordner. Die fertigen Jars liegen dann in dist und können direkt aufgerufen werden seieh Manifest.

Gib mir mal deine E-Mailaddy, dann schicke ich dir das Projekt mit allem drum und dran.
 

foobar

Top Contributor
Ja! Also ich will ja nix gegen deine Augen oder deinen Bildschirm sagen....
Ok, ich habs gefunden. Es ist nur etwas verwirrend da die Auswahl der Datei in der selben Zeile steht wie die Formatierungen. Ein wichtige Regel in der Usability lautet: "Was zusammen gehört muß auch zusammen gruppiert werden." Ausserdem solltest du zwischen den Jomboboxen etwas Raum lassen, damit Fluchten entstehen und man sofort sieht was wozo gehört.
 

michi2

Bekanntes Mitglied
foobar hat gesagt.:
Ja! Also ich will ja nix gegen deine Augen oder deinen Bildschirm sagen....
Ok, ich habs gefunden. Es ist nur etwas verwirrend da die Auswahl der Datei in der selben Zeile steht wie die Formatierungen. Ein wichtige Regel in der Usability lautet: "Was zusammen gehört muß auch zusammen gruppiert werden." Ausserdem solltest du zwischen den Jomboboxen etwas Raum lassen, damit Fluchten entstehen und man sofort sieht was wozo gehört.
Ja, werds vieleich in ne eigene Zeile packen, muss da noch einbisschen rummspielen...

Warte noch auf eine Analyse meien Vorgehens für die Multifile-funktion (->4 Posting)
 

foobar

Top Contributor
Zum Code:
- static ist evil!!! Du machst dir das Leben nur unnötig schwer. Selbst die Instanz deiner Hauptklasse in der Main-Methode ist static. Warum?

- Von Kapselung ist keine Spur, alle Member sind public oder Packagescoped.

- Die Bezeichner sind irreführend. Teilweise verwendest du die C++-Form m_Something, manchmal werden die Klasse einfach nur mit M1-M-5 bezeichnet. Also alles Kraut und Rüben.

- Was soll das C am Anfang der Klassenbezichner?

- Die Klasse Michis-Editor ist viiiiiiiiiiiieeeeeeeeeeeel zu groß. Eine Klasse darf nicht mehr als ca. 500 und eine Methode nicht mehr als 100 zeilen enthalten. Ansonsten stimmt beim Klassedesign irgendwas nicht.

- Warum sind alle Klassen final?

- Warum verwendest du ein Array für die offenen Dateien anstatt einer Liste? Im Moment kann man nicht mehr als 128 Dateien öffnen und es werden auch immer 128 leere Objekte im Speicher gehalten.

- Du solltest generell den Code besser auteilen in GUI und Geschäftslogik. Z.b. in der Klasse MultiFile refernzierst du ein Widget aus der GUI, das ist nicht besonders schön. Besser wäre es wenn du über ein Interface auf die GUI zugreifst und dir Daten in Form von Beans holst.

P.S. Ich finde es sehr löblich, daß du dir selber so eine Aufgabe stellst, denn nur so kann man etwas lernen.

Viele Grüße
foobar

- Du solltest den Code auch etwas besser auf einzelne Packages verteilen z.b. pk/gui , pk/gui/filter etc. Damit du auch eine gewisse Trennung von GUI und Logikschicht hast.
 

michi2

Bekanntes Mitglied
- Die Bezeichner sind irreführend. Teilweise verwendest du die C++-Form m_Something, manchmal werden die Klasse einfach nur mit M1-M-5 bezeichnet. Also alles Kraut und Rüben.

- Was soll das C am Anfang der Klassenbezichner?
Das mit dem m und dem C muss wohl aus C++ kommen, in meiem Javabuch steht das ständeig, werds entfernen (die wo es ist, ausgenommen cfile - keinen besseren Nammen gefunden sind alle alt, mach das schon lange nicht mehr).
Dem Autor sollte mann dafür in dem Ar*** treten...

- Du solltest generell den Code besser auteilen in GUI und Geschäftslogik. Z.b. in der Klasse MultiFile refernzierst du ein Widget aus der GUI, das ist nicht besonders schön. Besser wäre es wenn du über ein Interface auf die GUI zugreifst und dir Daten in Form von Beans holst.
Sorry, auch da muss ich passen, von Beans weiß ich nur das das irgentwas mit Java zu tun hat...

Der rest: Einverstanden auch wen mir das mit den 500Z pro Klasse und 100Z por Methode schwer fallen wird, aber ich werds schaffen :)
 

foobar

Top Contributor
Der rest: Einverstanden auch wen mir das mit den 500Z pro Klasse und 100Z por Methode schwer fallen wird, aber ich werds schaffen
Das ist auch nur ein Richtwert, wenn es mal 800 Zeilen werden ist das nicht so schlimm. Aber wenn eine Software aus 10 Klassen zu jede 5000 Zeilen besteht, stimmt irgendwas nicht ;-)

Dem Autor sollte mann dafür in dem Ar*** treten..
Ja, so ist das mit Code aus Büchern, da kannste froh sein, wenn der sich überhaupt kompilieren lässt.

Sorry, auch da muss ich passen, von Beans weiß ich nur das das irgentwas mit Java zu tun hat...
Eine Bean ist eine dummy Klasse die keine Logik enthält und dadui gedacht ist Daten zu halten. Such mal nach ValueObject-Pattern oder JavaBean hier im Forum.
 
B

Beni

Gast
Da fehlt ein Ordner "pk" in der JAR. All deine Klassen sind in einem Package "pk.irgendwas", also muss auch die Ordnerstruktur im JAR mit "pk" beginnen.
 

michi2

Bekanntes Mitglied
Und wie schaff ich das? Benütze wie in der FAQ beschrieben:
jar -cvfm meinjar.jar meman.txt -C /bin/pk /
 
B

Beni

Gast
Ich arbeite selten auf der Konsole, aber versuch mal
"jar -cvfm meinjar.jar meman.txt -C /bin /"
 

michi2

Bekanntes Mitglied
Danke, bin aber grad im Moment wo du gepostet hast, selbst draufgekommen :)

Um nochmal hirauf zurück zu kommen:
Code:
class cfile
   {
      String suchen;
      public int suchindex = -1;
     
      // globale Variablen innerhalb der Klasse
      public File einausgabedatei;                    // zu ladende/speichernde Datei
      public String m_dateiname_Name = "";                // reiner Name
      public String m_dateiname_Path = "";                 // reiner Pfad
      boolean m_dateiname_gueltig = false;
      public boolean search_up = false;
      public boolean bgenau = false;
      public boolean bcursor = false;
      //JMenuItem item3_2;
      public String m_aktText;               // aktueller Text in der TextArea
      String m_alterText;                  // alter Text der TextArea
      String[] m_alterTextNr = new String[10];            // alter Text der TextArea
      LinkedList m_undoTextNr = new LinkedList();      // Undo Text der TextArea
      LinkedList last_used = new LinkedList();      //Lastused
      JMenuItem[] item1_6_ = new JMenuItem[4];      //Die Lastused eintr�ge
      int[] markerNr = new int[127];         // Die Markerwerte
      JMenuItem[] item2_11b_ = new JMenuItem[127];   //Die 'gehe zu Marker' eintr�ge
      public JMenuItem[] item2_11c_ = new JMenuItem[127];   //Die 'L�se Marker' eintr�ge
      byte m_undoNumber = 0;         //Aktuelle undo-Position
      byte markerNumber = 0;         //Anzahl der Marker
      boolean gespeichert = false;
      public pk.CTextAnzeige m_textanzeige;      // die eigentliche TextArea
      public JTextArea TA;
      JPanel p_neu;
      JComboBox m_fonts,m_styles;           // Auswahl von Fonttyp, Stil und
      JComboBox m_farben;                      // Farbe
      JComboBox m_groese;         //Groese
      JScrollPane scroll;

      int cursorposition;
   
   
   void laden()
      {
      Michis_Editor.suchen = suchen;
      Michis_Editor.suchindex = suchindex;
      Michis_Editor.einausgabedatei = einausgabedatei;
      Michis_Editor.m_dateiname_Name = m_dateiname_Name;
      Michis_Editor.m_dateiname_Path = m_dateiname_Path;
      Michis_Editor.m_dateiname_gueltig = m_dateiname_gueltig;
      Michis_Editor.search_up = search_up;
      Michis_Editor.bgenau = bgenau;
      Michis_Editor.bcursor = bcursor;
      Michis_Editor.m_aktText = m_aktText;
      Michis_Editor.m_undoTextNr = m_undoTextNr;
      Michis_Editor.last_used = last_used;
      Michis_Editor.item1_6_ = item1_6_;
      Michis_Editor.item2_11c_ = item2_11c_;
      Michis_Editor.m_undoNumber = m_undoNumber;
      Michis_Editor.markerNumber = markerNumber;
      Michis_Editor.gespeichert = gespeichert;
      Michis_Editor.TA = TA;
      Michis_Editor.p_neu = p_neu;
      Michis_Editor.m_fonts = m_fonts;
      Michis_Editor.m_styles = m_styles;
      Michis_Editor.m_farben = m_farben;
      Michis_Editor.m_groese = m_groese;
      Michis_Editor.scroll = scroll;
      Michis_Editor.m_textanzeige = m_textanzeige;
      Michis_Editor.m_textanzeige.setText(m_aktText);
      Michis_Editor.m_textanzeige.setCaretPosition(cursorposition);

      if(!m_dateiname_Name.equals(""))
         Michis_Editor.e1.setTitle("Michi's Editor 3 - " + m_dateiname_Name);
      else
         Michis_Editor.e1.setTitle("Michi's Editor 3");
      }

   void speichern()
      {
      suchen =    Michis_Editor.suchen;
      suchindex =    Michis_Editor.suchindex;
      einausgabedatei =    Michis_Editor.einausgabedatei;
      m_dateiname_Name =    Michis_Editor.m_dateiname_Name;
      m_dateiname_Path =    Michis_Editor.m_dateiname_Path;
      m_dateiname_gueltig =    Michis_Editor.m_dateiname_gueltig;
      search_up =    Michis_Editor.search_up;
      bgenau =    Michis_Editor.bgenau;
      bcursor =    Michis_Editor.bcursor;
      m_aktText =    Michis_Editor.m_aktText;
      m_undoTextNr =    Michis_Editor.m_undoTextNr;
      last_used =    Michis_Editor.last_used;
      item1_6_ =    Michis_Editor.item1_6_;
      item2_11c_ =    Michis_Editor.item2_11c_;
      m_undoNumber =    Michis_Editor.m_undoNumber;
      markerNumber =    Michis_Editor.markerNumber;
      gespeichert =    Michis_Editor.gespeichert;
      TA =    Michis_Editor.TA;
      p_neu =    Michis_Editor.p_neu;
      m_fonts =    Michis_Editor.m_fonts;
      m_styles =    Michis_Editor.m_styles;
      m_farben =    Michis_Editor.m_farben;
      m_groese =    Michis_Editor.m_groese;
      scroll =    Michis_Editor.scroll;
      m_aktText = Michis_Editor.m_textanzeige.getText();
     m_textanzeige =    Michis_Editor.m_textanzeige;
     cursorposition = m_textanzeige.getCaretPosition();
      }
   void println()
   {
     System.out.println("cfile, TAtext: " + m_textanzeige.getText());
     System.out.println("cfile, text: " + m_aktText);
   }
}
Ist das in Ordnung? Welche anderen Möglichketen giebt es die Informationen zwischen zu speichern?
 

foobar

Top Contributor
@Michi Warum benutzt die nicht das Buildscript das ich dir gebaut habe? Du mußt in der Konsole einfach nur ant dist eingeben und bekommst dann im dist-Ordner ein src/bin-Jar und einen Ordner mit den Javadocs.
 

michi2

Bekanntes Mitglied
foobar hat gesagt.:
@Michi Warum benutzt die nicht das Buildscript das ich dir gebaut habe? Du mußt in der Konsole einfach nur ant dist eingeben und bekommst dann im dist-Ordner ein src/bin-Jar und einen Ordner mit den Javadocs.
Hä? Welches Buildscript?
 

foobar

Top Contributor
Na das Ant-Buildscript(build.xml), das liegt im Projektordner. Wenn du ant installiert hast kannst du einfach ant dist eingeben und bekommst eine fertige Distribution. Oder eben in Eclipse, dann ist es noch komfortabler.
http://de.wikipedia.org/wiki/Ant
 

michi2

Bekanntes Mitglied
Nun, ich verstehe nicht was das für einen unterschied machen soll, ob ich jetzt Ant oder meine eigenen scripte benütze, habe jetzt 2 Ordner: einen wo mein Projekt mit folgender Ordnerstruktur:
Michis_Editor //Über-Ordner
>bin //Kompilierte Dateien
> > pk
> > > Michis_Editor.class
... //alle *.class-Dateien
>scr //Source-Ordner
> > pk
> > > Michis_Editor.java
...
>doc //Die Java-Dokumentation
> > index.html
> > pk
...
> ME-comp //Script zum Kommpilieren
> ME-start // Starten
> ME-doc // zur Erstellung der Documentation

Und eien mit dem vondir gemachten eclips-Project, welches ich benützen werde weiß ich noch nicht.
 

foobar

Top Contributor
Dann guck dir mal auf der Webseite von ant an, was man alles damit machen kann und wie einfach das geht. Ausserdem bist du damit plattformunabhängig, ansonsten mußt du immer eine Batch und ein Shellscript erstellen und beide auf dem neusten Stand halten.

Mein Buildscript in meinem aktuellen Projekt kann folgendes:
- kompilieren
- javadoc erstellen
- jars erzeugen
- Obfuscator über die Jars laufen lassen
- Javahelp und Pdf-Handbuch aus Docbook generieren
- Installer für die gesamte Anwendung erstellen
- nativen Launcher mit gebundeltem JRE erstellen
....

Mach das mal mit einem Shellscript oder einer Batch, da bist du lange beschäftigt. Jetzt starte ich einfach nur mein Buildscript über eine Tastenkombination in Eclipse und bekomme eine fertige Anwendung mit allem was man so braucht( siehe Liste oben).

Viele Grüße
foobar
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Java6 update N bekommt neues Browser-Plugin, bitte testen. Allgemeine Java-Themen 7
M Programmierstill: Bitte testen anhand HTML-Tool Allgemeine Java-Themen 18
Robert Zenz Ich brauche bitte mal kurz einen Sanity/Reality-Check betreffend Tests. Allgemeine Java-Themen 9
jhCDtGVjcZGcfzug Klassen Was genau passiert hier? Kann mir das jemand bitte Zeile für Zeile erklären? Allgemeine Java-Themen 1
B Bitte um Code Erklärung Allgemeine Java-Themen 5
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
V Bilder bei bestimmten Zeiten wechseln, bitte um Hilfe Allgemeine Java-Themen 5
M Bitte Hilfe mit REGEX (Negieren) Allgemeine Java-Themen 4
I Bitte Drngend hilfe Allgemeine Java-Themen 2
F Socket NullPointerException Bitte um hilfe! Allgemeine Java-Themen 12
M Input/Output Java + OCR ? Erfahrungen und bitte um Hilfe Allgemeine Java-Themen 12
F Bitte um Hilfe! Allgemeine Java-Themen 5
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
J Probleme bei kompilieren ... Bitte um Hilfe Allgemeine Java-Themen 2
Jats ArrayList-Error Index: 1 Size:1 - Bitte um Hilfe Allgemeine Java-Themen 36
S Bitte um Hilfe Allgemeine Java-Themen 8
N "Bitte warten"-Meldung Allgemeine Java-Themen 6
I Studium - bitte dringend helfen !!! Allgemeine Java-Themen 17
C Eclipse spinnt - bitte Helfen! Allgemeine Java-Themen 3
J Probiert mal bitte aus (Thread + Runtime) Allgemeine Java-Themen 10
J Bitte um Kurzinfo bez. JMF (ja, war bei Forumssuche/google) Allgemeine Java-Themen 2
E Bitte um Rat: Sortieren mit ArrayList Allgemeine Java-Themen 2
P Bitte um Hilfe Allgemeine Java-Themen 4
K Hab Sch***e gebaut - Bitte um Hilfe Allgemeine Java-Themen 7
G Zertifikat importieren? Bitte HILFE! Allgemeine Java-Themen 2
J synchronized (bitte beantworten, urgent! danke) Allgemeine Java-Themen 11
I Weiß nicht mehr weiter! Bitte helft mir! Allgemeine Java-Themen 5
P Was ist denn Bitte falsch? Allgemeine Java-Themen 2
P Bitte kritisieren: rekursive Sortier-Methode Allgemeine Java-Themen 2
J könnt Ihr mir bitte mal den Fehler erläutern! Allgemeine Java-Themen 5
D Große Klasse - was fällt euch so ins Auge? Kritik bitte! Allgemeine Java-Themen 10
thE_29 Vor dem ersten Posten bitte lesen! Allgemeine Java-Themen 0
K bitte um hilfe bei file import Allgemeine Java-Themen 7
N Compiler (javac) funktioniert nicht... Bitte hilfe! Allgemeine Java-Themen 3
Zrebna Zuverlässiges Automatisiertes Testen im eigenem Software-Unternehmen aufsetzen - How to? Allgemeine Java-Themen 12
Zrebna Automatisiertes Testen von größeren und komplexen Prozessen Allgemeine Java-Themen 56
L Erste Schritte TDD testen einer Methode mit injezierten Services? Allgemeine Java-Themen 12
Z Testen ob neuer Tag beginnt Allgemeine Java-Themen 37
S Habt ihr eine Idee wie man Serializierung testen kann..? Allgemeine Java-Themen 6
B Eclipse WebSocket programmiert, kann es leider nicht testen. Allgemeine Java-Themen 15
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
perlenfischer1984 TestNG - Enum testen Allgemeine Java-Themen 1
perlenfischer1984 Testng : Funktion mit mehreren Parametern testen Allgemeine Java-Themen 5
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
F Testen von Methoden Allgemeine Java-Themen 3
B JUnit Zufalls Operation testen Allgemeine Java-Themen 1
P Testen von UIs Allgemeine Java-Themen 2
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
M Testen von verschiedenen Produktversionen Allgemeine Java-Themen 3
T EventBus testen Allgemeine Java-Themen 1
L JUnit - automatisiertes vs. manuelles Testen? Allgemeine Java-Themen 6
R Java Performance testen Allgemeine Java-Themen 18
B Mails testen Allgemeine Java-Themen 7
A AVL-Baum - Testen ob einer vorliegt Allgemeine Java-Themen 4
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
X Testen ob ein array leer ist Allgemeine Java-Themen 6
M Server-Responds testen, Code-Redundanz Allgemeine Java-Themen 3
fastjack Unit-Testen mit Mocks Allgemeine Java-Themen 6
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
H Thread Safety und Deadlocks testen Allgemeine Java-Themen 6
D Muss eine JNI Biblio testen (MAC OS X) Allgemeine Java-Themen 4
T Object auf Double, Int, String testen Allgemeine Java-Themen 5
aokai Testen von Klassen die abhängig von Stdlibs URL sind Allgemeine Java-Themen 3
S Testen einer Anwendung durch klicken von Koordinaten Allgemeine Java-Themen 7
R Testen von Applets - versch. Browser und Java Versionen? Allgemeine Java-Themen 4
V Quellcode auf "Güte" testen? Allgemeine Java-Themen 5
G JAR-DAtei testen Allgemeine Java-Themen 15
J Klasse auf Konstruktor oder Methode testen? Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
Z Testen welches BS benutzt wird Allgemeine Java-Themen 3
G Testen von RMI,TCP/IP, Servlets etc. Allgemeine Java-Themen 2
M Welches Linux zum Java testen? Allgemeine Java-Themen 5
P Testen mit JUnit Allgemeine Java-Themen 8
G testen mit JUnit? Allgemeine Java-Themen 3
K Testen ob Methode existiert? Allgemeine Java-Themen 2
N Cashbook Management Testen Allgemeine Java-Themen 7
A testen ob Primzahl dauert bei größeren zahlen extrem lange Allgemeine Java-Themen 8
M String testen? Allgemeine Java-Themen 2
M String testen? Allgemeine Java-Themen 6
N auf typ testen? Allgemeine Java-Themen 3
K Testen einer Klasse mit File Objekt als Parameter Allgemeine Java-Themen 6
T GUI Testen Allgemeine Java-Themen 4
T GUI Testen Allgemeine Java-Themen 5
G Programm zum Testen der Striktheit von Java Allgemeine Java-Themen 9
H Laufwerk testen? Allgemeine Java-Themen 12
F Hilfe: Adjazenzmatrix mittels JUnit testen. Allgemeine Java-Themen 2
M Jemannd mit 1.4/1.3/1.2 zum Testen gesucht. Allgemeine Java-Themen 15
flashfactor Testen ob ein R/3 erreichbar bzw. noch am leben ist. Allgemeine Java-Themen 2
T Datum testen und Einsetzten Allgemeine Java-Themen 5
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
P Dateinamen mit regulärem Ausdruck testen Allgemeine Java-Themen 9
P Dateinamen testen? Schreibrechte auf Verzeichnis testen? Allgemeine Java-Themen 8
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
Drachenbauer Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt? Allgemeine Java-Themen 5
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben