tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Mirar
  • 1 Beitrag von Mirar
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
614
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Naturp Naturp ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    21
    Moing

    folgendes Problem
    Ich suche die ControllerListe nach Joysticks ab. wurde ein pasender Joystick gefunden, so wird er der ComboBox hinzugefügt.

    In dieser Controller Lieste hat jeder Controller eine Index Nummer..
    beim auslesen der ComboBox mit getSelectetItem kriege ich den Namen des Joystick als String zurück...mich würde aber die Indexnummer Interessieren.

    Hat jemand ne Idee wie ich beim adden des Strings die Inedxnummer mitgeben kann, so dass ich später weiss, zu welchem String welche Indexnummer gehört?

    Gruss
    Naturp
     

  2. #2
    Avatar von Mirar
    Mirar Mirar ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    20
    Guten Morgen,

    probiers mal mit der Methode "getSelectedIndex()"
    Das sollte dann klappen.

    Gruß Mirar
    Naturp bedankt sich. 
    Man kann niemanden überholen, wenn man in seine Fußstapfen tritt...

  3. #3
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Indem du zur ControllerListe ein Objekt einer Klasse übergibst, die beide Parameter speichert und deren toString()-Methode den Namen des Joysticks als String zurückgibt.

    z.B.: (ungetestet)
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    class JoyStickID{
       private final String NAME;
       private final long ID;
       
       JoyStickID(String name, long ID){
          this.NAME = name;
          this.ID = ID;
       }
       
       @Override
       public String toString(){
          return NAME;
       }
       
       long getID(){
          return ID;
       }
    }
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    @Mirar: Nein, außer er erstellt beim Hinzufügen ein Array/eine ArrayList, in der die Indizes mit denen in der Liste der JComboBox übereinstimmen.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  5. #5
    Naturp Naturp ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    21
    Mmmm..danke an alle. Die erste AW von Mirar war genau das richtige

    "getSelectedIndex()" Das hab eich gestern wohl übersehen dass es das gibt...

    Jetzt habe ich es so gemacht und das funktioniert =D

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
     static public void aktualisiereJoystickList()
      {
          ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment();
          Controller[] cs = ce.getControllers();
          Controller.Type type;
          RRX_Konsole.gefundeneJoysticks.removeAllItems();
          
          int i = 0;
            while(i < cs.length) {
              type = cs[i].getType();
              if ((type == Controller.Type.GAMEPAD) ||(type == Controller.Type.STICK))
              {
                 RRX_Konsole.gefundeneJoysticks.addItem(cs[i].getName());
                 gefundeneJoysticksArry[(RRX_Konsole.gefundeneJoysticks.getItemCount()-1)] = cs[i];
              }
              i++;
            }
            switch (RRX_Konsole.gefundeneJoysticks.getItemCount())
            {
            case 0:
                RRX_Konsole.joystickStatus.setText("Kein Joystick gefunden"); 
                break;
            case 1:
                RRX_Konsole.joystickStatus.setText("Joystick gefunden");
                RRX_Konsole.auswaehlenJoystick.setEnabled(true);
                break;
            default:
                RRX_Konsole.joystickStatus.setText(RRX_Konsole.gefundeneJoysticks.getItemCount() + "Ports gefunden"); 
                RRX_Konsole.auswaehlenJoystick.setEnabled(true);
                break;
            }
          return;
      }
      
      static public void auswaehlenJoystick()
      {
          controller = gefundeneJoysticksArry[RRX_Konsole.gefundeneJoysticks.getSelectedIndex()];
          
          System.out.println("Game controller: " +
                  controller.getName() + ", " + 
                  controller.getType());
     
          findCompIndices(controller);
     
          findRumblers(controller);
          RRX_Konsole.Joystick_ready = 1;
      }

    Ob das jetzt wirklich proffesionel ist weiss ich nicht =D Tatsache und Hauptsache ist das es funktioniert! Thx nochmal. Wundere mich immer noch dass ich gestern diese Methode nicht gesehen habe

    Aber falls jemand gerade noch ne viel "sauberere" Lösung einfällt bin ich natürlich ganz Ohr da ich ja etwas lernen möchte bei der ganzen Sache

    Super Forum hier!
    Gruss
    Naturp
     

  6. #6
    Avatar von Mirar
    Mirar Mirar ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    20
    @Mirar: Nein, außer er erstellt beim Hinzufügen ein Array/eine ArrayList, in der die Indizes mit denen in der Liste der JComboBox übereinstimmen.
    Eine JComboBox hat sobald sie einen Wert enthält automatisch einen Index für jeden Wert.
    Die Frage von Naturp war lediglich wie er statt des Wertes den Index bekommt und genau dafür gibt es schließlich die Methode der JComboBox. Würde ich mir erst ein Array erstellen und alles genau so einspeichern wie die JComboBox es sowieso schon gespeichert hat, hätte man sich diese Methode auch sparen können da ich dann auch die Methode getIndex() des Array-Objekts hätte nutzen können.

    Aber kein Ding

    Gruß Mirar

    P.S.: Über ein Danke freut man sich
    Geändert von Mirar (18.12.11 um 21:35 Uhr) Grund: Rechtschreibfehler xD
    Naturp bedankt sich. 
    Man kann niemanden überholen, wenn man in seine Fußstapfen tritt...

Ähnliche Themen

  1. JComboBox
    Von Olfipolfi im Forum Java Grundlagen
    Antworten: 4
    Letzter Beitrag: 14.05.10, 22:36
  2. JComboBox
    Von kloakenratte im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 27.02.08, 16:34
  3. JcomboBox(2)
    Von girl2005 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 28.07.05, 08:35
  4. JComboBox
    Von girl2005 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 11
    Letzter Beitrag: 24.07.05, 00:14
  5. JComboBox
    Von Pimon im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 10.03.04, 08:55