
VaNaTiC
Mitglieder-
Gesamte Inhalte
582 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von VaNaTiC
-
Und derselbe USB-Stick ist/war an Windows XP spürbar schneller?
-
Ist vielleicht in den Eigenschaften des USB-Sticks "für schnelles Entfernen" ausgewählt? Wird der Stick im Gerätemanager auch korrekt erkannt? Sind andere Sticks gleich langsam? USB-Controler hat auch den korrekten Treiber?
-
Naja, solange man den Rechner komplett spannungslos schaltet, also an einer Steckerleiste ausmacht oder das Kaltgerätekabel zieht, kann im Bios eingestellt werden, dass Aufwachen bei bestimmten Aktivitäten den PC startet. Das könnte eben nicht nur LAN sein, sondern auch Maus/Tastatur.
-
Das ist wirklich mysteriös, denn solche Features wie WakeOnIrgendwas muss man erst explizit einschalten. Von allein ist das wirklich komisch. Kommt das regelmäßig vor? Immer zur selben Zeit (Ereignislog checken)? Auslöser prüfen, indem Du entweder die BIOS Einstellungen nach "Wake On LAN" oder Maus/Tastatur testest oder das jeweilige Kabel vom PC trennst. Es gibt jede Menge Suspend-/Standby- Einstellungen. Wäre sicherlich für die Systemprofi's auch gut zu wissen in welchem Modus Du den Rechner ausschaltest (Standby/Ruhezustand/AUS/...).
-
Aber per Brainstorming würde ich daraus folgendes machen: import javax.swing.AbstractListModel; public class ListModelFoo extends AbstractListModel { private Buecherei buecherei = null; public ListModelFoo(Buecherei buecherei) { this.buecherei = buecherei; } public Object getElementAt(int index) { List liste = buecherei.getSortedList(); while (index-- > 0) liste.next(); return liste.getItem(); } public int getSize() { List liste = buecherei.getSortedList(); int count = 0; liste.toLast(); while (!liste.isInFrontOf()) { ++size; liste.prev(); } return size; } } listAutorenliste.setModel(new ListModelFoo(buecherei)); Prinzipiell ist auch das Berechnen der Größe einer LinkedList immer ein Problem. Deshalb kenne ich keine Implementierung, die nicht auch intern einen Counter mitschleppt, der beim add, remove, ... den internen counter verändert, so dass dieser direkt zurückgegeben werden kann. Ingesamt kommt mir das Ganze rein akademisch zum Erlernen und nicht besonders performant vor.
-
hmm, das funktioniert glaube ich nicht, denn buecherei.getSortedList() erzeugt intern bei jedem Aufruf eine neue JList als return-Wert!!!
-
Wenn Du bei Deinem FTP-Server passiv=false setzt, bedeutet dies aktives FTP. Ich vermute ganz stark, dass dann einfach nicht die korrekte öffentliche IP-Adresse mitgeteilt wird, wenn es über Internet gehen soll. Auch im passiven Modus sendet der Server seine IP-Adresse und den neu geöffneten Port an den Client. D.h. auch diese IP muss für den Client übers INet erreichbar sein, aber den Server hast Du im Griff, deswegen wäre das meine erste Wahl.
-
Ist das der von Sourceforge? Link? Source? Konkret von wo soll das Zurücksetzen erfolgen? Innerhalb des Dialogs per Event oder von außerhalb per Methode?
-
Mittels JNI habe ich schon diverse C++ Funktionalitäten eingebunden, aber ich verstehe leider Deine Fragen nicht. Könntest Du bitte die Fragen etwas verallgemeinern, denn mir fehlt das tatsächliche Problem? Oder geht es um das prinzipielle Handling von JNI, dann ist das aber viel zu viel Text
-
Hmm, dann ist das hier das Beste, was ich persönlich kenne (oder kannte): HTTPort + HTTHost, TCP through HTTP tunneling software
-
Eine kleine Anmerkung vorweg: Solange in geModel().elementAt(x) ein String zurückgeliefert wird indem nur Nummern enthalten sind, dann funktioniert das. OK jetzt was anderes. Da es sich hier um Java handelt, sollten wir ein paar Sachen richtig stellen: Wie schon gesagt, ist das ein expliziter type cast. Der Compiler lässt das auch zu, allerdings wirft das zur Laufzeit ziemlich sicher eine ClassCastException, denn ich wage zu bezweifeln, dass object in diesem Fall immer vom Typ Long oder einer davon abgeleiteten Klasse ist. Besser ist die Exceptions zu vermeiden wo es geht und prinzipiell mittels instanceof zu testen. long l = (long)object; Geht genauso wenig, da sagt der Compiler schon nee Das wäre dann aber falsch, denn daraus wird einfach kein Hash. Daraus wird auch keine Referenz, schon garnicht gesichert als long. Für den Hash eines Objects gibt es int Object.hashCode(), der noch am nächsten zur Referenz eines Objekts steht. Dieser Hash ist im Endeffekt in den Java-Implementierungen genau das, was hexadezimal hinter den Klassennamen beim Object.toString() steht. akhead, Du sagst, da müsste noch toString() rein?! Ich nehme an, es ist das hier gemeint: kopfvo.setAuftrag_nr(Long.parseLong(_listAuftrage.getModel().getElementAt(i).toString())); Wenn dem so ist, dann ist Dir nicht bewusst, dass Long.parseLong() immer einen String als ersten Param verlangt und das der Compiler automatisch zur Laufzeit eine Wandlung von Objekt in String vornimmt und das automatisch mittels Object.toString() macht bzw. der polymorphen Methode. Das toString() bringt also nur der besseren Lesbarkeit halber was. Leider kann ich Dir nicht sagen, was dann per toString() rauskommt. Ob das überhaupt Sinn macht zu als Long zu parsen, denn das ist abhängig vom Inhalt des Listeneintrages. Wie eingangs gesagt, geht das nur, wenn das Strings sind, die nur aus Nummern bestehen. Aber warum dann nicht gleich einen Vector<Long> benutzen?!
-
Prima, so soll es sein. Rein interessehalber: Wie hast es jetzt gemacht?
-
Völlig richtig. Das ist ein expliziter type cast. Nur der Nutzungsgrund will sich mir nicht so richtig erschliessen
-
Hmm, ja. Hatte einen Denkfehler! Die paint()-Methode des JFrame kommt tatsächlich nur wenn nötig und eben nicht, wenn nur Child-Elemente nötig sind. Und das ist genau die Krux. Dein Panel wird neu sehr wohl gezeichnet und genau deshalb sind die Striche plötzlich weg. Ist ja auch klar, die Striche sind ja nachträglich draufgekommen und nun ist halt JPanel wieder drüber. Lösung: Leite Dir ein eigenes Panel ab, kopiere die paint() in das Panel und ersetze die Referenz im Frame auf Dein neues Panel: import java.awt.Font; import java.awt.Graphics; import java.awt.event.FocusListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Sudo_Frame_2 extends JFrame{ public int feldlänge = 9; public JTextField tf[][] = new JTextField[feldlänge][feldlänge]; public JButton bt_start = new JButton("Start"); public Font font = new Font("SansSerif", Font.BOLD, 14); public JPanel panel = new [COLOR="#ff0000"]SudoPanel[/COLOR](); public Sudo_Frame_2(){ panel.setLayout(null); for(int zeilen = 0; zeilen < feldlänge; zeilen++){ for(int spalten = 0; spalten < feldlänge; spalten++){ tf[zeilen][spalten] = new JTextField(); tf[zeilen][spalten].setDocument(new Sudo_TextFeld_Begrenzung(1)); tf[zeilen][spalten].setHorizontalAlignment(JTextField.CENTER); panel.add(tf[zeilen][spalten]); } } add(panel); int pos_x = 10; int pos_y = 10; int hoehe = 25; int breite = 25; int zähler = 0; for(int zeilen = 0; zeilen < feldlänge; zeilen++){ for(int spalten = 0; spalten < feldlänge; spalten++){ tf[zeilen][spalten].setBounds(pos_x, pos_y, hoehe, breite); pos_x = pos_x + 35; zähler++; if(zähler == 9){ pos_x = 10; pos_y = pos_y + 35; zähler = 0; } } } setResizable(false); setTitle("Sudoku Löser"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(330, 350); setVisible(true); } [COLOR="Red"] /*public void paint(Graphics graphics) { super.paint(graphics); graphics.drawLine( 10, 132, 320, 132); graphics.drawLine( 10, 237, 320, 237); graphics.drawLine(112, 30, 112, 340); graphics.drawLine(217, 30, 217, 340); }*/ [/COLOR]} [COLOR="#ff0000"]class SudoJPanel extends JPanel { public void paint(Graphics graphics) { super.paint(graphics); graphics.drawLine( 10, 132, 320, 132); graphics.drawLine( 10, 237, 320, 237); graphics.drawLine(112, 30, 112, 340); graphics.drawLine(217, 30, 217, 340); } }[/COLOR] Hinweis: Die Koordinaten stimmen nicht mehr genau!
-
Ich will jetzt nicht gleich zuviel loslassen, aber als Einstieg kannst Du Dir mal überlegen, was ein Scanner macht und was dabei für "Kennzahlen" relevant sind: Wenn man ein DIN A4 einscannt (Maße siehe URL) kann man aus den unterstützen Auflösungen des Scanners auswählen, meistens in dpi (dots per inch) angegeben. Mit der tatsächlichen Größe des Papiers und den dpi lassen sich die Pixel errechnen. Jetzt kommt noch eine letzte Angabe, die der Farbtiefe. Diese bestimmt wieviel Speicherplatz ein Pixel benutzt. Und nun musst Du nur noch die Formel entwickeln, aber das machst schön selber
-
Kannst Du bitte Deinen aktuellen Quellcode soweit reduzieren, dass alles in einem kleinen JFrame drin steht und hier posten? Vielleicht lässt sich dann beim direkten Nachvollziehen was entdecken.
-
genau Würde denn sowas auch gehen? SELECT ...NVL(evtl_null_spalte,select text from ... where langcode = 'default'),...
-
Ich vermute Du willst die Firewall nach außen tunneln?
-
Wird überhaupt irgendetwas dynamisches unterstützt? SSI, cgi-bin, perl?
-
Von "besser", "schneller" und "Anwendung" hab ich nix gesagt. Es war nur ein Tipp, dass es auch Alternativen gibt. Aber Fakt ist, es gibt sehr wohl Anwendungsfälle und Datenbestände wo mehrere joins weder sinnvoll noch performant sind und in der UI per Hash in einer Map besser aufgehoben sind. Muss ich dann nicht zweimal aus der aufrufenden Umgebung abfragen? Ob extra eine NULL-Logik Sinn macht, beispielsweise in einem MVC-Pattern, halte ich auch nicht für optimal.
-
die Sprach-Bezeichnungen in die eigentlichen Datentabellen einzufügen hat wenig mit RDBMS zu tun. Fakt ist das dies trotzdem gemacht wird, meistens aber genau dann, wenn zuviele inner join oder zu lange dauern, weil einfach zig-Millionen Records in den betroffenen Tabellen sind. Der bessere Weg ist allemal die Sprach-Bezeichnungen in (eine) eigene Tabelle auszulagern. Eventuell ist es von Vorteil nur eine Tabelle (mit TextID, LangID, Text) zu machen. Das hat u.U. Vorteile beim Cachen. Aber für verschiedene IDs in einem select brauchst Du trotzdem dann verschiedene inner join. Aber ein Vorteil ist, dass Du dann wenn es wirklich Engpäße gibt, die nicht mit Keys oder Cache behandelt werden können, einfach die Text-Tabelle beim Start der GUI lädst und das Verknüpfen mit Texten dort erledigst. Und eine Frage hab ich noch: Wie realisierst Du, wenn bsp zu einer Artikelnummer und der LangId keine Bezeichnung existiert? Stored Procedure mit Id als Param und Rückgabe des Strings und da drin einen select auf LangID='1' or LangID='0' // default ?
-
if(e.getActionCommand().equals("<")){ int row = _listAuftrage.getSelectedIndex(); [COLOR="Red"]_listAuftrage.getModel()[/COLOR].remove(row); _listAuftrage.updateUI(); }
-
Aus der MSDN für C++: array<Object^>^myStringArray = {myString}; myFormControl1->Invoke( myFormControl1->myDelegate, myStringArray ); Der zweite Parameter von Invoke() ist Object[], d.h. auch wenn die zu invokende Methode nur 1 Parameter hat ist das halt ein Object[0] = str
-
Wichtig zu beachten sind 3 Dinge: - ... delegate result name(params); ist nur die Deklaration einer Methodensignatur, damit die Invoke-Methode korrekt aufgerufen werden kann - man sollte versuchen immer in der Methode selbst zu prüfen, ob ein Invoke notwendig ist, so dass der Zugriff von "Außen" transparent bleibt. Ergo je "näher" am Element, desto besser - das Control weiss über InvokeRequired() ob ein Recall mittels Invoke(...) notwendig ist. So wie ich die Hilfe verstanden hatte, prüft das die Aufrufende Thread-ID mit der GUI-Thread-ID. Wie allerdings die Parameterübergabe in C++ genau ausschaut kann ich Dir nicht sagen, mein Beispiel war in C#, aber ich vermute ist ähnlich und in der MSDN beschrieben.
-
Hmm, ich verstehe den Zusammenhang nicht. Wo werden denn Dateien übergangen oder fehlen? Der Puffer von 1 kB hat nix damit zu tun. Dein Beispiel was zu langsam war, hatte einen "Puffer" von einem Byte. Jetzt halt von 1024. Die Größe des Puffers kann sehr wohl auf die jeweilige Situation optimiert werden. Aber an dem Verfahren ändert, dass Du liest nacheinander jeweils 1024 byte aus Deiner CE-Datei liest und diese Bytes in die Zieldatei schreibst, ändert das nichts. Ob Du nun alle Daten auf einmal in den Puffer liest und auf einmal in die Zieldatei schreibst oder Häppchenweise ist völlig egal. Sobald ein Fehler passiert, kommt eh die Exception.