Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 22 von 22

Thema: MouseListener auf Grafik

  1. #16
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von Jana
    Klasse, hat geholfen!
    Immer wieder schön - wenn du jetzt noch sagst, was genau du gemacht hast

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  2. #17
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Ich habe auf dem Panel eine Menge JTextArea's erzeugt.
    Jede JTextArea steht für eine Person.
    Person_count ist die Anzahl der Personen, die sich in der Datenbank befinden.

    private JTextArea person[] = new JTextArea[10000];

    for(int i=0; i<Person_count; i++){

    person[i] = new JTextArea();
    person[i].setBounds(xWert,yWert,Breite,Hoehe);
    person[i].setBackground(new Color(r,g,b,1));
    //Hintergrund transparent
    person[i].setEditable(false); //Eingabe unerwünscht
    person[i].setName(""+Person_id[i]); //Name ist gleich id der Person aus der Datenbank
    (es geht auch mit set.Text oder append)

    person[i].setForeground(new Color(r,g,b,1)); //Schrift transparent
    person[i].addMouseListener(this);
    person[i].setCursor(new Cursor(Cursor.HAND_CURSOR));
    this.add(person[i]);
    }


    Jetzt habe ich mit dem Mouseevent gefragt, welche Person(Box) ich angelickt habe:

    public void mouseReleased(MouseEvent evt) {

    JTextArea boxname = (JTextArea)evt.getSource();
    String Person_id= boxname.getName();
    //System.out.println("textValue: "+Person_id);

    Personendaten person_id = new Personendaten(Person_id); //Weitergeben der id der Person an das Eingabefenster
    }

    Eingabefenster für die Personendaten:
    Konstruktor:
    public Personendaten(String Personen_id)
    {System.out.println("Personen_id: "+Personen_id); }
    Geändert von Jana (05-07-2006 um 16:20 Uhr)

  3. #18
    Registrierter Benutzer Avatar von Corcovado
    Registriert seit
    10.07.2005
    Beiträge
    30
    Ich hab den Thread nun 3x gelesen und stelle mir nun einige Fragen.. Du kennst also an die 10000 - das is ne kleinere Kreisstadt - Deiner Vorfahren mit Vor und Nachnamen, etc - ich kenn nich mal meine Eltern richtig??!!! Ich dachte das Anda_Skoa eher meinte, dass 1000 (viel) zu viel sind, als zu wenig. Warum Du das dann aufs 10fache vergroesserst verstehe ich nun nicht ganz?

    Ueberlege Dir bitte mal, wenn Du 10000 Namen editierbar darstellen willst - man tippt doch immer nur an einzelnen rum und nur dafuer brauchst Du das JTextField. Evtl waere eine lazy Evaluation artige Strategie _hoechst_ anzuraten bspw gleich nen eigenen Dialog dazu - das ist OOP und das Gegenteil von alles im Array und megastatisch (und NICHT alles stattdessen in ner Liste und dynamisch, das ist weder OOP noch sonst was, das ist schlimm! Ich weiss das ich hab auch so programmiert!). Ausserdem wenn Du gleich zum Start des Prgs, den kompletten Datensatz a la "Knueppel aus dem Sack" dem Benutzer, in seiner absoluten Vollstaendigkeit an den Kopf/Bildschirm knallst, wozu dann noch die Datenbank?!

    Versuche doch bspw per Listener den Namen (vllt auf nem Button, nem Treenode, etc) per Doppelklick veraenderbar zu halten, also bspw: man klickt auf einen Namen, ein Dialog geht auf (dem musst Du bspw das Parent Frame Objekt im Ctor sowieso mitgeben, brauchst also nich mal ein Event), bei klick auf etwa einen OK Button in dem Dialog kann dann eine Funktion des Parent Frames die Aenderungen per Parameter uebernehmen und in das entsprechende Label (oder was auch immer) fuer den Namen eintragen.

    Was Du dabei benoetigen wuerdest waere eine einzige Klasse "NamenEditierDialog" sonste nix, die instanziierst Du nur, wenn jemand nen Namen angeklickt hat sonst nicht. Die Namen speicherst Du als _String_ in nem Container der wiederum nen entsprechenden Speichertyp fuer mehrere Strings (bspw eine Klasse Personaldaten, die die Attribute String Name und String Vorname enthaelt), also ArrayList, Collection, etc - mach Dir Gedanken, welchen Du brachst. Der Unterschied zwischen nem Array und ner liste is einfach, Array is etwas kleiner, aber statisch - wenn sich die Laenge der liste NIE aendert nimm ein Array, willst Du flexibel sein, nimm bspw die ArrayList. Halte diese immer entsprechend klein, ggbenenfalls Daten nachladen aus der DB, dafuer is die ja da!

    Bspw:
    Code:
    class NameEditierDialog{
    
    private JButton okbutton = new JButton();
    private JFrame frame;
    private JTextField tfNeuerText;
    
    public NameEditierDialog(JFrame newFrame){
    super(newFrame);
    
    frame = newFrame;
    initGUI();
    }
    
    
    private void initGUI(){
    //button wo ein haengen, layout manager, etc
    okbutton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ok();}});
    }
    
    // ...
    
    private void ok(){
    frame.getLabel(labelIndex).setText(tfNeuerText.getText());
    }
    
    // Klasse zu - Affe tot.
    Nja, ich weiss aus vielen Erzaehlungen, die ich so im Laufe der Zeit mitbekommen habe, dass wohl die meissten Leute sich hinsetzen und in einer Woche mal schnell ein Betriebssystem schreiben. Ich bin selber leider nicht so begabt und hab fuer mein erstes groesseres (>40 Klassendateien) Java Projekt Monate gebraucht und hatte davor auch schon ein halbes Jahr Java Vorlesungen gehoert/gehabt. Danach hatte zwar haufenweise Material, Beispiel Code fuer "Wie verwende ich was" und viel gelernt, aber fuer das Programm hab ich mich schon eine Woche danach furchtbar geschaemt.. die ersten Teile sind oft alles absoluter Schrott. Erwarte bitte nicht zu viel von Dir beim ersten Prg!!! Dein Haupterfolg am Anfang ist imo die erfolgreiche "Vergroesserung des Archivs"! Sei froh, wenn Du Fehler machst und diese als solche einsiehst, denn nur so kannst Du lernen - viele machen das imo nicht.
    Geändert von Corcovado (14-07-2006 um 18:02 Uhr)
    Hahahahahahaha... (Winx)

  4. #19
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    An meinem Stammbaum arbeiten wir bereits seit einigen Generationen.
    Irgendjemand aus der "Jugendgeneration" hat ihn wieder übernommen.
    Es wurden schon Bücher gedruckt.
    Es gibt Familientreffen mit ein paar hundert Leuten.
    Keine Ahnung wie es dazu gekommen ist. Aber da viele persönliche Kontakte vorhanden sind, ist es fast wie ein Schneeballsystem. Macht Spaß!

    Mein Programm darf man nicht so ernst nehmen. Ich programmiere nur ein gekauftes Programm nach. Das läuft sowieso schon.
    Ich habe leider keinen, der mir Java beibringt, deshalb suche ich mir ein "Problem" um es zu lernen.
    Geändert von Jana (19-07-2006 um 12:56 Uhr)

  5. #20
    Registrierter Benutzer Avatar von Corcovado
    Registriert seit
    10.07.2005
    Beiträge
    30
    Is ja das beste was Du machen kannst, Kopf hoch, nicht unterkriegen lassen. Die meissten Leute haben keinen der's ihnen zeigt - aber dafuer gibts ja Foren.

    Schau Dir doch mal folgendes an:
    http://www.galileocomputing.de/openbook/javainsel5/
    Nur immer so abschnittsweise, bspw Du willst was abspeichern -> FileStreams, oder suchst was ueber Multithreading oder XML, etc. Mit der Zeit wirste die wichtigen Sachen einfach nachgelesen haben. Manches theoretische find ich darin zwar etwas oberflaechlich beschrieben, aber trotzdem besticht das Buch einfach durch die ewig vielen Beispiele und Vergleiche, und durch seine Aktualitaet - ein Praxisbuch halt und frei!!

    Noch mehr Bsp Code gibts zB hier (auch wenn 1.4 etwas aelter is):
    http://javaalmanac.com/
    Hahahahahahaha... (Winx)

  6. #21
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von Corcovado
    Is ja das beste was Du machen kannst, Kopf hoch, nicht unterkriegen lassen. Die meissten Leute haben keinen der's ihnen zeigt - aber dafuer gibts ja Foren.
    Konzepte lerns du, indem sie dir jemand beibringt. Ne Sprache lernst du nur durch viel Codeschreiben.
    Schau Dir doch mal folgendes an:
    http://www.galileocomputing.de/openbook/javainsel5/
    Nur immer so abschnittsweise, bspw Du willst was abspeichern -> FileStreams, oder suchst was ueber Multithreading oder XML, etc. Mit der Zeit wirste die wichtigen Sachen einfach nachgelesen haben. Manches theoretische find ich darin zwar etwas oberflaechlich beschrieben, aber trotzdem besticht das Buch einfach durch die ewig vielen Beispiele und Vergleiche, und durch seine Aktualitaet - ein Praxisbuch halt und frei!!

    Noch mehr Bsp Code gibts zB hier (auch wenn 1.4 etwas aelter is):
    http://javaalmanac.com/
    Mir gefällt persönlich das www.javabuch.de besser, da es für meinen Geschmack übersichtlicher gestaltet ist.

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #22
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Vielen Dank für eure Mühe.
    Manchmal - wenn man feststeckt - sind halt echte Menschen zum Reden besser als Bücher.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •