-
Gesamte Inhalte
82 -
Benutzer seit
-
Letzter Besuch
-
Hallo, erstmal sry für den Threadtitel... Ich weiß nicht wie ich das prägnant ausdrücken kann. Ich schreibe momentan eine Anwendung. Das ganze soll mal ein Editor werden, um 2D Spiele erstellen zu können. Innerhalb der Anwendung möchte ich nun z.B. mehrere Projekte anlegen und verwalten können. Im Prinzip soll das ganze wie z.B. im JBuilder funktionieren. Wenn man innerhalb der Anwendung nun ein neues Projekt erstellt oder zwischen verschiedenen Projekten hin- und herschaltet müssen ja verschiedenste Bereiche in der Anwendung aktualisiert werden etc. Dazu sind mir 2 Möglichkeiten eigefallen. 1) Mit Referenzen und Methoden alles irgendwie durchschleifen und die relevanten Objekte und Bereiche anpassen. 2) Mit selbstgeschriebenen Listenern arbeiten. Listenerklassen können erstellt und zu einem Projektmanager geadded werden. Der Projektmanager feuert dann bei Ändernungen einen relevanten Event an die relevante ListenerMethode. Die ausimplementierten Listenerklassen machen dann die relevante Arbeit. Ich habe mich für die 2 Methode entschieden, da ich sie übersichtlicher finde. Könnt ihr mir vielleicht noch Alternativen oder Designmuster nennen die sich auch mit diesem Thema befassen? Ich hoffe ich konnte mich verständlich machen. Danke und Grüße, Peter
-
Hi, es macht nichts, dass der Renderer nur für bestimmte Spalten o.Ä. registriert wird. Du kannst die Klasse DefaultTableCellRenderer und in ihr die Methode public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) überschreiben und in der implementierung dafür sorgen, dass die gesamte Zeile farbig wird. Habe ich auch so gemacht. Gruß, Peter
-
Hi, eine Möglich ist es nicht den Hintergrund der Tabelle, sondern den des ScrollPane zu ändern. Zumindest für den sichtbaren Bereich... Gruß Peter
-
Zu deiner ersten Frage: Ja, die Möglichkeit gibt es. Google mal nach JEditorpane und Hyperlink... Gruß, Peter
-
Hi, ist ein Schuß ins Blaue... Ich glaube im Tree wird das angezeigt, was die "toString()"-Methode liefert. Diese Methode greift auf die "toString()"-Methode des UserObjects zuürck, also des Objects, welches als Referenz an den TreeNode übergeben wurde. Demnach könnte die Änderung an der Anzeige funktionieren, wenn Du das UserObject so manipulierst, dass die "toString()"-Methode etwas anderes anzeigt. Ist aber geraten, sry... Gruß, Peter
-
Inner classes: Zugriff von inner class auf outer class object
Morbid_Soul antwortete auf MikeVader's Thema in Java
Hi, >>Wie kann ich jetzt von der innerclass auf eine Methode dieses Interfaces zugreiffen? Du willst bestimmt auf die "Outerclass" zugreifen? Dass erreichst du, in dem du der innerclass eine Referenz der Outerclass mit übergibst. >>bzw wie bekomme ich eine expliziete Referenz der Outerclass von der Innerclass? Sry, den Satz habe ich nicht verstanden. :/ Ich habe aber das Gefühl, dass bei Dir das Desing vielleicht nicht stimmt. Was versuchst Du in der Klasse abzubilden? Weißt Du wozu Interfaces da sind? Musst Du überhaupt mit inneren Klassen arbeiten? Gruß, Peter [edit] Formatierung [/edit] -
Hi, sry aber ich kann mir leider noch immer kein Bild von dem Problem machen... Vielleicht kannst Du eine Klasse bauen und ihr die Suchparameter übergeben. Anhand der Suchparameter kann diese Klasse vielleicht versuchen die Suche zu deligieren. Da kann man bestimmt auch was mit abstrakten Methoden machen oder etwas in der Art. Gruß
-
Hi, wie suchst Du denn? Durchsuchst Du eine SQL-Datenbank? Vielleicht brauchst Du auch nicht unbedingt für jede Datenbank/Tabelle (?) eine eigene Klasse. Mir scheint es auch, dass die ganze Sache nicht so kompliziert sein muss. Gruß
-
Hi, wie Du schon bemerkt hast, tut der Konstruktor von JTextfield nicht das was du erwartet hast. Soweit ich weiß, dient der Konstruktor nur dazu, dass das Textfeld seine gewünschte Größe innerhalb eines GridLayouts kennt. Wie Du es anzeigen lässt, dass es nur die Breite für 6 Zeichen anzeigt hängt vom Layout das du verwendest ab. (Breite wäre nur bei Schriften wie Courier fix?) Die Klasse JTextFieldLimit diu Du da verwendest sollte allerdings funktionieren. Habe sie jetzt nicht kopiert und ausprobiert, nehme aber mal an, dass sie zuverlässig funktioniert. Bist Du dir sicher, dass Du sie fehlerfrei in Deinen Source übernommen hast? Eigentlich sollte kein Text gelöscht werden. Das das textfeld keinen Text anzeigt, könnte daran liegen, dass der Text der eingefügt werden soll länger als 6 Zeichen ist. Wie befüllst Du das Textfeld? Nur durch manuelle Eingaben? Wird das mit Werten aus einer DB oder einer File gefüllt? Hängen da vielleicht Leerzeichen dran oder so? (Eventuell vorher String.trim() verwenden o.ä.) Gruß, Peter
-
Hi! Mh, klingt komisch was Du da vor hast, aber weiß ja auch nicht was da gemacht werden soll. Du kannst bestimmt ein PopUpMenu für das Label registrieren und darin den Text auslesen.... Oder einfach einen MouseListener auf das Label setzen und bei nem Rechtsklick den Wert in eine Variable speichern... Ist bestimmt nicht die Stylolösung, sollte aber funktionieren. Gruß, Peter [edit] http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/24.html [/edit]
-
Woher Information für korrektes Textfeld auslesen
Morbid_Soul antwortete auf tinella's Thema in Java
Hi, Du schreibst, dass das Textfeld gesperrt wird. Demnach könntest Du doch vielleicht den Status des Textfeldes (isEnabled oder isEditable) abfragen? Gruß, Peter -
Hi, bist Du dir sicher, dass es nur mit einer JList geht und vielleicht nicht auch mit einer JTable z.B.? Ansonsten hast du auch die Möglichkeit die Bestellpositionen z.B. auf einem Dialog, oder einem Panel/einer selbsgeschriebenen Komponente zu erfassen und nach dem Speichern die erzeugte Bestellposition einfach in eine Liste einzufügen. Das es also in der JList selber keine editierbare Zeile gibt... Gruß, Peter
-
Rückgabe eines erzeugten Schlüssels bei einem PreparedStatement
Morbid_Soul antwortete auf Pinhead's Thema in Java
Hi, mit welchem DBMS arbeitest du? Bei SQL-Server zumindest, kannst du über die SQL-Variable (heißt das so?) @@identity die zuletzt erzeugte ID ermitteln. Ich weiß allerdings nicht, ob das auch in anderen DBMS geht. Gruß, Peter -
Moin, bist du sicher das er den Batch nicht ausführt? Verwende ansonsten mal die Methode waitFor() vom Process-Objekt, um auf das Batchende zu warten... Gruß, Peter
-
Hi, kannst du die Methode setBackground() verwenden, die das JMenuItem von JComponent erbt? Gruß, Peter