1

I have an intermediate table that gets information from two other tables from the database (it gets their id), I'd like to show information of the other tables through that intermediate table in each of the others but it show me all of the information.

public showTheatreForm(Resources res, Theatre t) {
       Toolbar tb=new Toolbar(true);
       current=this;
           setToolbar(tb);
       getTitleArea().setUIID("Container");
       setTitle("modifier actor");
       getContentPane().setScrollVisible(false);
       super.addSideMenu(res);

            Label name = new Label((t.getName()));
            
             Picker datePicker = new Picker();
             datePicker.setDate(t.getRdate());
             String datestring=(new SimpleDateFormat("yyyy-MM-dd")).format(datePicker.getDate());
              Label date = new Label((datestring));
            TextField description = new TextField((t.getDescription()));
            TextField actors = new TextField((t.getTactor()));
            //Label image = new Label((t.getImage()), "Image");
                 ImageViewer imavu;
    try {
    imavu = new ImageViewer(getImageFromServer(t.getImage()));
    }
    catch(Exception e) {
    System.out.println(t.getImage());
    imavu = new ImageViewer(res.getImage("s.png"));
    }
        description.setSingleLineTextArea(false);
         actors.setSingleLineTextArea(false);
            name.setUIID("NewsCenterLine");
            date.setUIID("NewsCenterLine");
            description.setUIID("NewsCenterLine");
            imavu.setUIID("NewsCenterLine");
            actors.setUIID("NewsCenterLine");
            
            Label a = new Label("");
            
            Label e = new Label ();

            Container content = BoxLayout.encloseY(
            e,a,  (name),
                     createLineSeparator(),  (actors),
                    createLineSeparator(),date,
                    createLineSeparator(),  (description),
                    createLineSeparator(),  (imavu)
                   
            );

            add(content);
            show();

            }

And this is how I get it from the database:

public ArrayList<Theatre> ShowTheatre (){
         
        ArrayList<Theatre> result=new ArrayList<>();
        String url=Statics.BASE_URL+"/theatre/displayTheatre";
        req.setUrl(url);
        req.addResponseListener(new ActionListener<NetworkEvent>() {
            @Override
            public void actionPerformed(NetworkEvent evt) {
                JSONParser Jsonp;
                Jsonp=new JSONParser();
                try{
                    Map<String,Object>mapTheatre= Jsonp.parseJSON(new CharArrayReader(new String(req.getResponseData()).toCharArray()));
                    List<Map<String,Object>> listofMaps = (List<Map<String,Object>>) mapTheatre.get("root");
                    
                    
                    
                    for(Map<String,Object> obj : listofMaps)
                    {
                       
                        Theatre th=new Theatre();
                        
                        float id=Float.parseFloat(obj.get("id").toString());
                        String name=obj.get("name").toString();
                        String genre=obj.get("genre").toString();
                          String description=obj.get("description").toString();
                        String image=obj.get("image").toString();
                        String trailer=obj.get("trailer").toString();
                        String poster=obj.get("poster").toString();
                        String get=obj.get("theatreActors").toString();
                        
                        th.setId((long)id);
                        th.setName(name);
                        th.setTactor(get);
                        System.out.println(get);
                        th.setDescription(description);
                        th.setImage(image);
                        th.setTrailer(trailer);
                        th.setPoster(poster);
                        th.setGenre(genre);
                        
                       Map<String, Object> dd = (Map<String, Object>) obj.get("rdate");
                float ll = Float.parseFloat(dd.get("timestamp").toString());
                                              
                th.setRdate(new Date(((long) ll * 1000)));
}
                    
                result.add(th);
            }
             
                    
                } catch (IOException ex) {
                    System.out.println(
                            "good");
                                    }
            }
        });
                    NetworkManager.getInstance().addToQueueAndWait(req); 
                    return result;
            }

Result of the code

This is the result, but I only want to get the "name" and "date" or "description" from the intermediate table My intermediate table (the name of the table is theatreActors)

Robert
  • 7,394
  • 40
  • 45
  • 64
Lelithya
  • 55
  • 6
  • Consistent indentation and placement of braces would help yourself and others to understand your code. Also please don't post images of text (output and table definitions). – Robert May 17 '21 at 21:10
  • 1
    Place a breakpoint in `showTheatreForm` and step over the code. Inspect every member of `t` to see that the value for each member is correct. It's hard to tell from the code but I'm guessing one of the members includes the full JSON code and not just a short string. Also most IDEs support a code format function which will make your code easier to read ;-) – Shai Almog May 18 '21 at 01:51

0 Answers0