2017-07-05 1 views
-1

Ich benutze 2 Buttons, um eine Liste von beliebten Orten und Hotels aus einem Webservice zu erhalten und in einer Multiliste anzuzeigen.Formularsteuerung nicht revalidierend

Button 1 für beliebte Orte

Anstecknadel 2 für Hotels

Wenn ich auf Knopf klicken 1 es alle angeforderten Liste angezeigt, aber wenn ich zurück gehen Knopf klicken 2 ist die Liste zurückkehren von Hotels beitreten mit der Liste der beliebten Orte, die früher angezeigt wurde.

Ich möchte, wenn ich auf Button 1 klicken, sollte es die Liste der beliebten Orte zurück und wenn ich zurück gehe, um Button 2 klicken, sollte ONLY die Liste der Hotels zurückgeben. Ich habe versucht, die Form zu validieren, aber kein Glück. Hier ist mein Code:

protected void beforeFormA(Form f) { 
     Button bn = new Button("Exit"); 
     Container c = new Container(new BoxLayout(BoxLayout.Y_AXIS)); 
     switch (i) { 
      case 1://for Button 1 
       Style s = UIManager.getInstance().getComponentStyle("Button"); 
       FontImage p = FontImage.createMaterial(FontImage.MATERIAL_PORTRAIT, s); 
       EncodedImage placeholder = EncodedImage.createFromImage(p.scaled(p.getWidth() * 3, p.getHeight() * 4), false); 
       f.setTitle("Tourist Attractions"); 
       getattractive(); 
       ArrayList arr = (ArrayList) response.get("results"); 
       for (Object m : arr) { 
        Map ma = (Map) m; 
        address = (String) ma.get("formatted_address"); 
        name = (String) ma.get("name"); 
        icon = (String) ma.get("icon"); 
        data.add(createListEntry(name, address, icon)); 
       } 
       DefaultListModel<Map<String, Object>> model = new DefaultListModel<>(data); 
       MultiList ml = new MultiList(model); 
       ml.getUnselectedButton().setIconName("icon_URLImage"); 
       ml.getSelectedButton().setIconName("icon_URLImage"); 
       ml.getUnselectedButton().setIcon(placeholder); 
       ml.getSelectedButton().setIcon(placeholder); 
       findContainer(f).add(BorderLayout.CENTER, ml); 
       c.addComponent(bn); 
       bn.addActionListener((ActionEvent evt) -> { 
        System.exit(0); 
       }); 
       findContainer(f).add(BorderLayout.SOUTH, c); 
       f.getComponentForm().revalidate(); 
       break; 

      case 2://for Button 2 
       Style s1 = UIManager.getInstance().getComponentStyle("Button"); 
       FontImage p1 = FontImage.createMaterial(FontImage.MATERIAL_PORTRAIT, s1); 
       EncodedImage placeholder1 = EncodedImage.createFromImage(p1.scaled(p1.getWidth() * 3, p1.getHeight() * 4), false); 

       f.setTitle("Hotels"); 
       gethotels(); 
       ArrayList arr1 = (ArrayList) response.get("results"); 
       for (Object m : arr1) { 
        Map ma = (Map) m; 
        address = (String) ma.get("formatted_address"); 
        name = (String) ma.get("name"); 
        icon = (String) ma.get("icon"); 
        data.add(createListEntry(name, address, icon)); 
       } 
       DefaultListModel<Map<String, Object>> model1 = new DefaultListModel<>(data); 
       MultiList ml1 = new MultiList(model1); 
       ml1.getUnselectedButton().setIconName("icon_URLImage"); 
       ml1.getSelectedButton().setIconName("icon_URLImage"); 
       ml1.getUnselectedButton().setIcon(placeholder1); 
       ml1.getSelectedButton().setIcon(placeholder1); 
       findContainer1(f).add(BorderLayout.CENTER, ml1); 
       c.addComponent(bn); 
       bn.addActionListener((ActionEvent evt) -> { 
        System.exit(0); 
       }); 
       findContainer1(f).add(BorderLayout.SOUTH, c); 
       f.getComponentForm().revalidate(); 
       break; 
     } 
    } 

Antwort

1

Es scheint, dass Sie nie data Liste Ihrer reinigen ... So vorherigen Artikel (hinzugefügt mit data.add(createListEntry(name, address, icon)); bleiben

Sie sollten mit am Anfang eines jeden Fall klar:.

data.clear(); 
Verwandte Themen