-
Gesamte Inhalte
1804 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von TDM
-
gibt es eine Möglichkeit ein Objekt aus dem Hintergrund in den Vordergrund zu setzen ? setForeground macht nur die Farbe O.o
-
ja der tipp reicht, danke was ist an der variablen deklaration unsauber ? das private public protected hab ich weggelassen da erstmal alles funktionieren soll (außerdem ist es vorerst so und so egal weil alles in einer classe ist )
-
Exception in thread "main" java.lang.NullPointerException at Mauszeichner.<init><Mauszeichner.java:30> at Mauszeichner.main<Mauszeichner.java:30> Edit: Wie gesagt, das ist erstmal nur ein Test die funktion wird später schon verschoben Edit²: ok, hat sich geklärt danke
-
ich soll eine (grafische) Funktion (also Linie) auf einem JPanel zeichenen der Anfangspunkt soll gesetzt werden wenn man die maus drückt und der Endpunkt wenn sie losgelassen wird (Linke Taste) wenn man die rechte Taste drückt soll die bisherige Linie gelöscht (bzw. das Panel "gesäubert") werden der Code ist noch im Anfangsstadium da wie gesagt das mit drawLine noch nicht geht: import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class Mauszeichner extends JPanel implements MouseListener { JFrame f = new JFrame("Mauszeichner"); Container c = f.getContentPane(); int mausX; int mausY; int maus_start_x; int maus_start_y; int maus_end_x; int maus_end_y; JPanel pan_Mausdraw = new JPanel(); public Mauszeichner() { f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(500,600); f.setLocation(600,400); f.setLayout(null); pan_Mausdraw.setBounds(50,50,400,500); pan_Mausdraw.addMouseListener(this); pan_Mausdraw.setBorder(new EtchedBorder()); c.add(pan_Mausdraw); pan_Mausdraw.drawLine(100,100,400,300); f.setVisible(true); } public static void main(String[] args) { new Mauszeichner(); } public void mouseClicked (MouseEvent e) {} public void mouseReleased (MouseEvent e) { if(e.getButton() == e.BUTTON1) { System.out.println("LMB"); } maus_end_x = e.getX(); maus_end_y = e.getY(); } public void mouseExited (MouseEvent e) { maus_start_x = 0; maus_start_y = 0; maus_end_x = 0; maus_end_y = 0; } public void mouseEntered (MouseEvent e) { System.out.println("Drinnen"); } public void mousePressed (MouseEvent e) { maus_start_x = e.getX(); maus_start_y = e.getY(); } }
-
ich habe hier ein Problem mit drawLine(x1,y1,x2,y2) und zwar kommt bei einem Funktionsaufruf der Fehler dass der die Funktion nicht kennt Ich hätte es mit g.drawLine(...) probiert aber da Graphics eine abstracte Klasse ist, kann ich keine Instanz bilden... Alles was ich per google finde ist entweder mit einer extra Klasse oder funzt ne :/
-
Hi, kann mir jemand sagen ob es eine Funktion gibt die Strings in Date castet bzw. überprüft ob es ein gültiges Datumsformat ist und wenn ja wie heißt die Funktion ?
-
ok... das heißt nein *g* nächste frage: ich hab in der stdflifo.h folgende zeilen: #define VL_MODE_DEFAULT 0 #ifndef VL_MODE #define VL_MODE VL_MODE_DEFAULT #endif in der .cpp hab ich: #define VL_MODE 1 Wieso bekomm ich eine Warnung mit Makro-Neudefinition ? Wird denn zu erst die .h und dann die cpp kompiliert ? O.o
-
Würde das nicht gehen ? #define TXT "Text" #define MAKRO "Text" #if MAKRO = TXT
-
#ifndef MAKRO1 && MAKRO2 ? wie kann man eigentlich Makros auf einen Text Prüfen ? #if MAKRO1 = "Text1" geht nicht :/
-
erm... mir ist grad wieder eingefallen warum ich NULL genommen hatte... Wenn da steht "Aufträge" und man "nur" Zahlen eingibt ist das bissl doof oder ? hatte mir am anfangen überlegt ob ich vielleicht auf strings umsteig (wollte das halt nur anfangs mit zahlen probieren)
-
ok, hast mich überzeugt... btw: was ist der unterschied zwischen #ifndef und if !defined() ?
-
also wär dann das define #define NULL void*0x00000000 oder wie ? aber die stdlib ist doch für c programme O.o
-
Visual Studion .Net und ich dachte malloc ist da damit man eine neue freie Addresse findet O.o? da NULL so und so in der stdlib.h als #define NULL 0 definiert ist, ist es doch eigentlich egal ob ich nun 0 oder NULL nehme O.o' Wenn globale variablen konstante werte hätten, wären es konstanten und keine variablen
-
Wieso C++ erzeugen ? der Compiler macht einfach nur Cpp dateien draus (man kann nur C++ Projekte erstellen O.o) sicher... da gibts auch irgentwo ne option aber egal... wollt halt mal nen "reinen" C code schreiben und das mit den PPrev hab ich ja schon mitgekriegt
-
ok habs gefunden... if (!head -> Elem) { head = tmp; tmp -> ID = 0; tmp -> PPrev = NULL; /* Anfang auf NULL setzen */ } else { tmp -> PPrev = tail; /* Verlinkung zum Vorherigen */ tmp -> ID = (tmp -> PPrev -> ID + 1); tail -> PNext = tmp; /* Verlinkung zum Nächsten */ }
-
ok... nicht mit Lifo... aber trotzdem wieder ein speicher fehler :/ stdflifo.h: #if !defined(CASE) || !defined(DEFAULT) #define CASE break;case #define DEFAULT break;default #endif #if !defined(CLS) #include <stdlib.h> #define CLS system("CLS") #endif #define MAX_ATTEMPT 3 /* Anzahl der Fehlversuche */ #define FEHLEINGABE CLS; printf("ungueltige Eingabe\n\n");Quit-- #define VL_MODE_DEFAULT 0 #ifndef VL_MODE #define VL_MODE VL_MODE_DEFAULT #endif //Struct Deklaration struct sNode; //Typedef #ifndef Element typedef int Element; #endif typedef sNode *Link; /* Link = Verweise */ //Struct Definition struct sNode { Element ID; Element Elem; Link PPrev; Link PNext; }; #define NEW_ADDRESS (Link) malloc(sizeof(sNode)) #if !VL_MODE //Kopf und Schwanz (erste und letzte) Link head = NEW_ADDRESS; Link tail; #else Link tail = NEW_ADDRESS; #endif //Funktion void print_menu(unsigned int Orders) { printf("********************************************************************************" "* *" "* 1 = Neuen Auftrag erzeugen *"); if (Orders) printf("* 2 = Aktuellen Auftrag anzeigen *" "* 3 = Aktuellen Auftrag loeschen *"); printf("* 4 = Programm beenden *" "* *" "* Noch %d Autraege *" "********************************************************************************",Orders); } /*////////////////////////////////////////////////////////////////// // LIFO Funktionen //////////////////////////////////////////////////////////////////*/ #if !VL_MODE void push(Element data) { Link tmp; tmp = NEW_ADDRESS; tmp -> Elem = data; /* Daten eintragen */ if (!head -> Elem) { head = tmp; [b]//tmp -> ID = 0;[/b] tmp -> PPrev = NULL; /* Anfang auf NULL setzen */ } else { [b]//tmp -> ID = (tmp -> PPrev -> ID + 1);[/b] tmp -> PPrev = tail; /* Verlinkung zum Vorherigen */ tail -> PNext = tmp; /* Verlinkung zum Nächsten */ } tmp -> PNext = NULL; /* Nächste vom Nächsten gibts nicht */ tail = tmp; /* Neues Ende */ } inline Element show(void) { return head -> Elem; } inline void set_default(void) { head -> Elem = NULL; } void pop(void) { if (head -> PNext) /* Wenn es ein nächstes gibt */ { Link tmp; tmp = head -> PNext; tmp -> PPrev = NULL; free(head); head = tmp; } else if (head == tail && head -> Elem) /* erste gleich letzte (nur noch 1 Element) */ { head -> Elem = tail -> Elem = NULL; free(head); /* Addresse freigeben */ } } /*////////////////////////////////////////////////////////////////// // FIFO Funktionen //////////////////////////////////////////////////////////////////*/ #else void push(Element data) { Link tmp; tmp = (Link) malloc(sizeof(sNode)); tmp -> Elem = data; tmp -> PPrev = tail; tail -> PNext = tmp; tmp -> PNext = NULL; tail = tmp; } inline Element show(void) { return tail -> Elem; } inline void set_default(void) { tail -> PPrev = NULL; } void pop(void) { if(tail -> PPrev) /*nicht das Letzte */ { Link tmp; tmp = (Link) malloc(sizeof(sNode)); tmp = tail -> PPrev; tmp -> PNext = NULL; free(tail); tail = tmp; } else { free(tail); /* letzte löschen */ } } #endif wenn ich jetzt die die ID zeilen (die dicken) wieder auskommentiere, dann bekomm ich einen speicherfehler in der art von
-
na ok, danke Morgen dann das ganze mit LIFO ? *g*
-
Hättest früher fragen können ne spass Warum meckert der bei short int ? O.o
-
Link head = (Link) malloc(sizeof(sNode)); Link tail; int main() { short int Quit = MAX_ATTEMPT, Wahl; unsigned int Orders = 0; Element data; head -> Elem = NULL; while (Quit) { print_menu(Orders); scanf("%d", &Wahl); switch (Wahl) { case 1: CLS; printf("Zahl eingeben:\t"); scanf("%d", &data); push(data); Orders++; CASE 2: CLS; printf("Aktueller Auftrag:\t%d\n\n",show()); CASE 3: pop(); CLS; Orders--; CASE 4: Quit = 0; DEFAULT: CLS; printf("ungueltige Eingabe\n\n"); Quit--; } } return 0; } void push(Element data) { Link tmp; tmp = (Link) malloc(sizeof(sNode)); tmp -> Elem = data; /* Daten eintragen */ if (!head -> Elem) { head = tmp; tmp -> PPrev = NULL; /* Anfang auf NULL setzen */ } else { tmp -> PPrev = tail; /* Verlinkung zum Vorherigen */ tail -> PNext = tmp; /* Verlinkung zum Nächsten */ } tmp -> PNext = NULL; /* Nächste vom Nächsten gibts nicht */ tail = tmp; /* Neues Ende */ } ok... jetzt gehts eigentlich auch nachdem alles gelöscht wurde nur der speicherfehler kommt immernoch
-
Irgentwie ging Edit nicht...: *keine Probleme mag* void pop(void) { if (head -> PNext) { Link tmp; tmp = head -> PNext; tmp -> PPrev = NULL; free(head); head = tmp; } else if (head == tail && head -> Elem) /* erste gleich letzte (nur noch 1 Element) */ { head -> Elem = NULL; } else { head -> Elem = tail -> Elem = NULL; free(head); } } Nun hab ich aber immernoch das Speicherproblem beim beenden :/ Edit: OK... IsHead hab ich vergessen :X
-
ja, schon... nur das ja ne ausnahme, man wird bestimmt keine verkette Liste benutzen wenn man nur einen Auftrag hatt Notfalls kann ich das über "unsigned int Orders" aber mal abgesehen von dem Problem geht das ja... nur dann halt bei Wahl = 4 bekomm ich den blöden Speicherfehler und ich weis nicht warum kann doch nicht sein dass das mit der static Variable zusammenhängt O.o'
-
hi, Ich hab hier ein kleines Problem mit meinem C Programm. Es soll eine Art Warteschlange (FIFO) simulieren. Soweit geht auch alles, nur wenn ich das Programm beenden will, dann bekomm ich immer einen Speicherfehler O.o Weis jemand woran es liegt ? Ist bestimmt nur eine Kleinigkeit und ich seh den Wald vor lauter Bäumen nicht... //Einsprungspunkt für FIFO.cpp #include <iostream> using namespace std; #if !defined(CASE) || !defined(DEFAULT) #define CASE break;case #define DEFAULT break;default #endif #if !defined(CLS) #include <stdlib.h> #define CLS system("CLS") #endif #define MAX_ATTEMPT 3 /* Anzahl der Fehlversuche */ //Struct Deklaration struct sNode; //Typedef typedef int Element; typedef sNode Node, *Link; /* Node = Elemente */ /* Link = Verweise */ //Funktion void print_menu(unsigned int Orders); void push(Element data); void pop(void); Element show(void); //Struct Definition struct sNode { Element Elem; Link PPrev; Link PNext; }; //Kopf und Schwanz (erste und letzte) Link head; Link tail; int main() { short int Quit = MAX_ATTEMPT, Wahl; unsigned int Orders = 0; Element data; while (Quit) { print_menu(Orders); scanf("%d", &Wahl); switch (Wahl) { case 1: CLS; printf("Zahl eingeben:\t"); scanf("%d", &data); push(data); Orders++; CASE 2: CLS; printf("Aktueller Auftrag:\t%d\n\n",show()); CASE 3: pop(); CLS; Orders--; CASE 4: Quit = 0; DEFAULT: CLS; printf("ungueltige Eingabe\n\n"); Quit--; } } return 0; } void print_menu(unsigned int Orders) { printf("********************************************************************************" "* *" "* 1 = Neuen Auftrag erzeugen *"); if (Orders) printf("* 2 = Aktuellen Auftrag anzeigen *" "* 3 = Aktuellen Auftrag loeschen *"); printf("* 4 = Programm beenden *" "* *" "********************************************************************************"); } void push(Element data) { static bool IsHead = true; Link tmp; tmp = (Link) malloc(sizeof(sNode)); tmp -> Elem = data; /* Daten eintragen */ if (IsHead) { head = tmp; tmp -> PPrev = NULL; /* Anfang auf NULL setzen */ IsHead = false; /* nicht mehr das erste Element */ } else { tmp -> PPrev = tail; /* Verlinkung zum Vorherigen */ tail -> PNext = tmp; /* Verlinkung zum Nächsten */ } tmp -> PNext = NULL; /* Nächste vom Nächsten gibts nicht */ tail = tmp; /* Neues Ende */ } inline Element show(void) { return head -> Elem; } void pop(void) { static bool WasLast = false; if (!WasLast) { Link tmp; tmp = head -> PNext; tmp -> PPrev = NULL; free(head); head = tmp; if (head == tail) /* erste gleich letzte (nur noch 1 Element) */ { WasLast = true; } } else { head -> Elem = tail -> Elem = NULL; free(head); } }
-
danke tobias achja: tut mir leid dass du dich wegen mir solch einer qual aussetzen musstest danke auch an kills und die anderen