combobox

Shizzl_chrizzl

Erfahrenes Mitglied
Hi Leude,

ich hab folgendes Problem.
Ich hab 2 Comboboxen die ihre items aus einer property file laden. Nun sobald ich dann ein Item aus der ersten Combobox ausgewählt habe soll in der zweiten die items eingelesen werden die zum ausgewählten item gehören.

Nun das funktioniert alles. Jetzt habe ich noch eine JTable in der auch 2 Spalten existieren die , die gleichen Elemente hat wie die Comboboxen. Nun wenn ich eine Zeile anklicke soll er die Items die in der jeweiligen Zeile stehen in den Comboboxen raussuchen und anzeigen. Das funktioniert auch nur das Problem ist das er die ganze Zeit die Items sucht und auf mysteriöse Weise die Sache in die combobox addet. Naja irgendwann hängt sich das Programm dann auf :rolleyes:.

Nun weis ich nicht wie ich das beheben soll ich schätz ma das Probl liegt im Listener. Schauts euch bitte mal an.

EineleseMethode:
Code:
 		  public JComboBox comboEqui = new JComboBox();
 		  public JComboBox comboProc = new JComboBox();
 
 		comboEqui.removeAllItems();
 		comboEqui.addItem(" ");
 		StringTokenizer st = new StringTokenizer(Equipment1, ",");
 		int nTokens = st.countTokens();
 		for(int i = 0; i < nTokens; i++){
 		 comboEqui.addItem(st.nextToken());
 		}
 		StringTokenizer ts = new StringTokenizer(Equipment2, ",");
 		int nTokense = ts.countTokens();
 		for(int i = 0; i < nTokense; i++){
 		 comboEqui.addItem(ts.nextToken());
 		}
  
 		comboEqui.addItemListener( new ItemListener() {
 		 public void itemStateChanged( ItemEvent e ) {
 		   if(e.getStateChange()==ItemEvent.SELECTED)	  
 			 {
 						 
 		  try{
 			 // if(comboProc.getItemCount() != 0)
 			  comboProc.removeAllItems();
 			  comboProc.addItem(" ");
 			  FileInputStream fis = new FileInputStream("process.properties");
 			  Properties properties = new Properties();
 			  properties.load(fis);
 			  String temp = ""+comboEqui.getSelectedItem();
 			  temp = temp.substring(0,5);
 	  
 			 String proc = properties.getProperty(temp);
 			 StringTokenizer st = new StringTokenizer(proc,",");
 			 int count = st.countTokens();
 			 for(int i = 0; i < count; i++){
 			 comboProc.addItem(st.nextToken());
 			 String s = comboEqui.getSelectedItem().toString();


suchMethode:

o.equipment_ID und o.processpr sind die Objekte in der JTable die mit den Items verglichen werden sollen damit das richtige item ausgesucht wird.

Code:
	public void setWafer(OMeasurementRS30 o){
 		  
 			if(o.equipment_ID == null || o.processpr == null)
 			{		  
 				  comboEqui.setSelectedIndex(0);	    
 				  comboProc.setSelectedIndex(0);
 
 			}else{
 				if(o.wafer_ID != null){
 
 			    String s = o.equipment_ID.toString().toUpperCase();
 			    for(int i = 0; i < comboEqui.getItemCount(); i++){				 
 				  if(s.equals(comboEqui.getItemAt(i)))
 				  {
 				    ButtonAuswahlWafer.setText(o.wafer_ID);
 				    comboEqui.setSelectedIndex(i);
 				    String p = o.processpr.toString().toUpperCase();
 				    for(int c = 0; c < comboProc.getItemCount(); c++){
 				    System.out.println(c);
 
 				    if(p.equals(comboProc.getItemAt(c)))
 					   {
 						  comboProc.setSelectedIndex(c);
 
 					   }else
 

Snape

Erfahrenes Mitglied
Moin,
need more input. ;)
In der Tabelle hast Du auch Comboboxen oder wie funktioniert der ganze Mechanismus?
Sorry, aber anhand des Codes kann ich nicht viel erkennen oder selbst nachschauen.
 

Shizzl_chrizzl

Erfahrenes Mitglied
ist ok hab gelöst das problem lag unten am adden , der hat die items ewig oft geaddet und dann musste der pc natürlich immer mehr durchsuchen und dann streikt der pc scho recht schnell (besonders ein amd Duron 700 mhz ;-)