Dropdown Menü / Auslastungsproblem

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Duffi, 27. Juni 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 27. Juni 2006
    Danke an alle die geholfen haben! neues prob weiter unten...

    Hey,

    ich hab nen problem mit inem dropdown menü, ich möchte es auslesen wenn ich einen button drücke.
    Das ausgelesene dann vergleichen und dann jeweils in der richtigen if() abfrage was machen z.B. hier einfach mal was ausgeben wäre toll

    Code:
     
    
    public class......
    
     JButton but1 = new JButton("Java sux");//Buttton zum senden
     static JComboBox box = new JComboBox();//Drop down Menü
    
     static String a;
    
     String walk= "walking m/w"; //die einzelnen Lauf Klassen
     String nord= "Nordicwalking m/w";
     String bamb="Bambinilauf";
     String schulE="Schüler/innen E";
     String schulD="Schüler/innen D";
     String schulC="Schüler/innen C";
     String schulB="Schüler/innen B";
     String schulA="Schüler/innen A";
     String jugendB="Jugend B";
     String jugendA="Jugend A";
     String haupt="Hauptstrecke m/w"; 
    ..
     public GUI(String title)
    ....
     box.addItem(walk);// Dropdown Menü, was da alles Drin steht
     box.addItem(nord);
     box.addItem(bamb);
     box.addItem(schulE);
     box.addItem(schulD);
     box.addItem(schulC);
     box.addItem(schulB);
     box.addItem(schulA);
     box.addItem(jugendB);
     box.addItem(jugendA);
     box.addItem(haupt);
    ..
    
     oben.add(zeitGes);
     oben.add(vita0);
     oben.add(box);
     oben.add(but1);
    ...
    but1.addActionListener
     (
     new ActionListener() {
     public void actionPerformed(ActionEvent e) {
     Object source = e.getSource();
    
     String dropdown = box.getSelectedItem().toString();// gibt dir das selektierte des Drop down aus
     boolean dropi;
    
     if (dropdown!="")
     {
     dropi=true;
     }
     else
     {
     dropi=false;
     }
    
     if(source == button1)// wenn der Button gedrückt ist dann
     {
     // mache aktion von button 1
     if(dropi==true )
     {
     //Wenn beim dropdown was angewählt wurde
     //sql connect
     // Abfrage was ausgewählt wurde
     if (dropdown.equals(walk))
     {
     a= "walking";//Auf die Jeweilige sql Tabelle Connecten;
     }
     if (dropdown.equals(nord))
     {
     a="nwalking";
     }
     if (dropdown.equals(bamb))
     {
     a="bambini";
     System.out.println("er hats geschafft");
     }
     if (dropdown.equals(schulE))
     {
     a="schuelerE";
     System.out.println("blubb");
     }
     if (dropdown.equals(schulD))
     {
     a="schuelerD";
    
     }
     if (dropdown.equals(schulC))
     {
     a="schuelerC";
     }
     if (dropdown.equals(schulB))
     {
     a="schuelerB";
     }
     if (dropdown.equals(schulA))
     {
     a="schuelerA";
     }
     if (dropdown.equals(jugendB))
     {
     a="jugendB";
     }
     if (dropdown.equals(jugendA))
     {
     a="jugendA";
     }
     if (dropdown.equals(haupt))
     {
     a="haupt";
     }
     }//if(dropi ==true)
     }//ob der Button gedrückt
     }
     }
     );
    ...
    
    belohnung ist natürlich klar
     

  2. Anzeige
  3. #2 27. Juni 2006
    also ich habe mir mal schnell deinen quelltext durchgelesen.

    versuch das mal in deiner if-bedingung:

    Code:
    box.getSelectedItem().equals("walk")
    viel spass noch!!!;)

    hoffe ich konnte weiterhelfen!!!:D
     
  4. #3 28. Juni 2006
    Ähm - eher nicht - da walk in seinem Code ne Variable und kein String is ;)

    Was mir spontan auffällt ist die Zeile:
    Code:
    if (dropdown!="")
    Strings werden nicht!!! mit == oder != verglichen sondern immer mit equals, also:

    Code:
    if (!dropdown.equals(""))
    Und die Lösung mit static Variablen ist auch Dreck sowas sollte man vermeiden ^^

    Besser:
    Code:
    public class ... extends ActionListener
    ..
    public GUI(String title)
    { 
    ..
    but1.addActionListener(this);
    ..
    }
    
    public void actionPerformed(ActionEvent e) {
    ..
    ..
    }
    Wenn du was ausgeben willst mach einfach ans Ende von actionPerformed noch nen
    Code:
    System.out.println(a)
     
  5. #4 28. Juni 2006
    danke 10er ging nur noch bei harry...

    hab noch ein kleines prob und zwar mit der auslastung ... ich brauch in meinem prog eine seknunden anzeige die nach oben läuft... das habe ich so gelöst:

    Code:
    static class zeitakt implements Runnable
     {
     public void run()
     {
     boolean laueft = false;
     do
     {
     if(geszeiton==true)
     {
     baum = System.currentTimeMillis() - startZeit;
     String baumm= Double.toString(baum/1000);
     zeitGes.setText("Gesamtzeit: "+baumm+" Sekunden");
     }
     }
     while(laueft==false);
     }
     }
    
    geszeiton wird auf true gesetzt, wenn die zeit gestartet ist... dabei wird auch startZeit gesetzt und zwar ist startzeit der wert der cirrenttimemillis beim start ;) so und nun wenn ich das programm laufen lasse verursacht dieser thread so 80 -90 % cpu auslastung ... wenn ich ihn rausnimm ist sie so bei 15 - 25
    kann ich das problem irgendwie lösen?
     
  6. #5 28. Juni 2006
    Du brauchst die Werte ja eh nicht so super genau da du das noch durch 1000 teilst, da kannst du dann noch ne kurze Wartezeit einbauen (Auch noch was anderes geändert - ist sinnvoller dann^^):
    Code:
    static class zeitakt implements Runnable
     {
     public void run()
     {
     boolean laueft = false;
     do
     {
     if(geszeiton)
     {
     baum = System.currentTimeMillis() - startZeit;
     String baumm= Double.toString(baum/1000);
     zeitGes.setText("Gesamtzeit: "+baumm+" Sekunden");
     }
     try
     {
     Thread.sleep( 100 ); //Wartet 100 Millisekunden, auch ein Wert von 1 würde die Auslastung schon verringern
     } catch(Exception e) {}
     }
     while(!laueft);
     }
     }
    //edit: Achja - Sinnvoller wäre es auch das solange laufen zu lassen wie laueft = true ist und nicht = false - Ist von der Logik her irgendwie sinnvoller xD
     
  7. #6 28. Juni 2006
    wärst du eine frau würd ich dich heiraten ;) egal was du weist alles ;) danke danke danke ;) endlich das letzte problem ausgelöscht =)

    ~close
     

  8. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Dropdown Menü Auslastungsproblem
  1. Antworten:
    3
    Aufrufe:
    1.557
  2. Antworten:
    4
    Aufrufe:
    1.139
  3. Antworten:
    2
    Aufrufe:
    1.632
  4. Antworten:
    7
    Aufrufe:
    552
  5. Antworten:
    2
    Aufrufe:
    358