Bir JTextField veya JComboBox ya saklayabilir / Nesne Sınıfı

oy
42

Aynı değişkene altında JTextField veya JComboBox ya saklayabilir kendi Sınıf / Nesne oluşturmak istiyoruz. Bu defa ne var:

import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JTextField;

public class Parameter {

String name;
String type;
String value;
JComponent comp;

Parameter(String inName, String inType, String inValue) {

    this.name = inName.trim();
    this.type = inType.trim();
    this.value = inValue.trim();

    // Set Component Type
    if (type.equalsIgnoreCase(bool)) {
        String[] tfArray = { Yes, No };
        comp = new JComboBox(tfArray);
        comp.setFocusable(false);
        ((JComboBox)comp).setSelectedItem(value.trim());

    } else {
        comp = new JTextField(value);
    }

}// End Parameter Constructor

public String getName() {
    return name;
}

public String getType() {
    return type;
}

public String getValue() {
    return value;
}

public JComponent getComp() {
    return comp;
}

}// End Parameter Class

Ben Sonra Parametre Nesneleri depolayan bir ArrayList var. Adı / Türü / Değeri aslında bir XML dosyası geliyor ama bir örnek için kod basitleştirilmiş var:

static ArrayList<Parameter> parameterArray = new ArrayList<Parameter>();

for(int i = 0; i < 10; i++){
parameterArray.add(new Parameter(parameterName,parameterType,value));
}

Ben Sonra Jpanel için Bileşen Ekle .. mesela

for(int i = 0; i < 10 ; i++){
panel.add(parameterArray.get(i).getComp());
}

O Bütün çalışmalar bu aşamaya kadar ince! Beklendiği Gibi ben ComboBoxes / JTextFields olsun. Ben metni almak için deneyin Ancak zaman / SelectedItem bana Parametre nesne ilk örn başlatıldı zaman değeri veriyor

for(int i = 0; i < 10; i++){
  if(parameterArray.get(i).getType.equalsIgnoreCase(bool){
    value = ((JComboBox)parameterArray.get(i).getComp()).getSelectedItem().toString();
  }else{
    value = ((JTextField)parameterArray.get(i).getComp()).getText();
  }
}

Sayı i arayüzünden JComboBox veya JTextField değiştirme durumunda .. o hala başlatıldı .. değil yeni değiştirilmiş değerinden değeri kullanarak olmasıdır. Herhangi bir fikir??

Teşekkürler

Tim

Oluştur 27/05/2014 saat 10:28
kullanıcı
Diğer dillerde...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more