Hallo Leute,
folgendes Problem:
Ich habe ein Array von Choices. Diese werden unter bestimmten Bedingungen gelöscht und wieder erstellt.
Das gleiche soll auch für die beiden Labels "g_z" und "plus" geschehen. Bei den Choices läuft alles einwandfrei, denn sobald die Bedingung erfüllt ist, werden sie gelöscht und weiter unten dann wieder erstellt.
Das eigentliches Problem sind die Labels. Wähle ich einen Item eines Choices, wird auch der Label erstellt bzw. gelöscht(so soll es auch sein). Das gleiche gilt auch für alle anderen Choices. Habe ich aber schon einen Item des z.B. ersten Choices und des z.B. zweiten Choices gewählt und möchte nun einen anderen Item des 1. Choices wählen , so entstehen auf einmal neue Labels!!! Bei den Choices funktioniert, wie gesagt alles einwandfrei. Das Ganze ist etwas kompliziert und nicht leicht zu schildern, deshalb bitte ich Euch nicht gleich wegzugehen und mir zu schreiben, wenn Ihr es nicht ganz versteht. Denn ich komme echt nicht weiter.
Hier der Code:
Hier noch zwei Bilder:
So sollte das Applet aussehen:
Aber so sieht es aus:
danke schon mal
folgendes Problem:
Ich habe ein Array von Choices. Diese werden unter bestimmten Bedingungen gelöscht und wieder erstellt.
Das gleiche soll auch für die beiden Labels "g_z" und "plus" geschehen. Bei den Choices läuft alles einwandfrei, denn sobald die Bedingung erfüllt ist, werden sie gelöscht und weiter unten dann wieder erstellt.
Das eigentliches Problem sind die Labels. Wähle ich einen Item eines Choices, wird auch der Label erstellt bzw. gelöscht(so soll es auch sein). Das gleiche gilt auch für alle anderen Choices. Habe ich aber schon einen Item des z.B. ersten Choices und des z.B. zweiten Choices gewählt und möchte nun einen anderen Item des 1. Choices wählen , so entstehen auf einmal neue Labels!!! Bei den Choices funktioniert, wie gesagt alles einwandfrei. Das Ganze ist etwas kompliziert und nicht leicht zu schildern, deshalb bitte ich Euch nicht gleich wegzugehen und mir zu schreiben, wenn Ihr es nicht ganz versteht. Denn ich komme echt nicht weiter.
Hier der Code:
Code:
public class itemalsfunk extends Applet implements ActionListener {
Panel Hauptpanel= new Panel();
Color bg_co = new Color(158,158,158);
Button b_b = new Button("Los");
Panel panel [] = new Panel[12];
String Items [] = {"NOP", "ADD", "LOAD"};
Choice choices [] = new Choice [11];
Choice c1 [] = new Choice [11];
Choice c2 [] = new Choice [11];
Choice cerg [] = new Choice [11];
Label labels [] = new Label[11];
Label g_z = new Label("=");
Label plus = new Label("+");
TextField t = new TextField(8);
public void init () {
Hauptpanel.setLayout(new GridLayout(0,1));
setBackground(bg_co);
add(Hauptpanel);
panel[11].add(b_b);
b_b.addActionListener(this);
panel[11].add(t);
for (int i=0; i<panel.length; i++){
panel[i]=new Panel();
Hauptpanel.add(panel[i]);
}
String s="0";
for (int i=0; i<labels.length; i++) {
labels[i] =new Label(s);
int s1=Integer.parseInt(s);
s1++;
s=Integer.toString(s1);
panel[i].add(labels[i]);
}
for ( int i = 0; i < choices.length; i++ ){
choices[i] = new Choice();
panel[i].add(choices[i]);
}
for (int i=0; i<choices.length; i++) {
choices[i].addItem(Items [0]);
choices[i].addItem(Items [1]);
choices[i].addItem(Items [2]);
}
for ( int i=0; i<choices.length; i++) {
final int index = i;
choices[i].addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e) {
if ( ItemEvent.SELECTED == 1){
aendere( index, e.getItem() );
}
}
});
}
}
public void aendere( int index, Object item ){
// wird immer aufgerufen, wenn "choice" ein neues "item" selektiert hat. Das item kann auch null sein!
if(item.equals("ADD")) {
if (cerg[index]!=null) {
panel[index].remove(cerg[index]);
panel[index].remove(g_z);
panel[index].remove(plus);
}
if (c1[index] !=null) panel[index].remove(c1[index]);
if (c2[index] !=null) panel[index].remove(c2[index]);
c1[index] = new Choice();
c2[index] = new Choice();
cerg[index]= new Choice();
g_z = new Label("=");
plus = new Label("+");
c1[index].add("R 0");
c1[index].add("R 1");
c2[index].add("R 0");
c2[index].add("R 1");
cerg[index].add("R 1");
cerg[index].add("R 2");
panel[index].add(cerg[index]);
panel[index].add(g_z);
panel[index].add(c1[index]);
panel[index].add(plus);
panel[index].add(c2[index]);
}
repaint();
validate();
}
public void paint (Graphics bs) {
}
public void actionPerformed (ActionEvent e){
}
}
Hier noch zwei Bilder:
So sollte das Applet aussehen:
Aber so sieht es aus:
danke schon mal