08. januar 2003 - 22:25Der er
8 kommentarer og 1 løsning
ActionHandling i et klassehieraki
Forvirret? Havde lidt svært ved at finde en passende overskrift, men her er problemet:
Mit programs grundflade er en JFrame som består af en par JPanels og en JDesktop. I Desktoppen findes en række JInternalFrames indeholdende nogle JPanels med knapper og så'en. Mit problem er actionHandling! I et vindue på desktoppen findes en knap som, når der trykkes på den, skal åbne en ny JInternalFrame (eller i nogle tilfælde vise en eksisterende) på desktoppen. Som mit program ser ud nu, har jeg behov for at håndterer et tryk på en sådan knap fra min yderste grænseflade (altså JFramen) for at kunne åbne en ny JInternalFrame på desktoppen. Dette skyldes at alle vinduer på desktoppen åbnes herfra (blandt andet gennem en JMenuBar). I den forbindelse spekulerede jeg på, hvordan jeg opsætter en ActionListener som: 1. Lytter på en JButton i et JPanel i en JInternalFrame på en JDesktop fra min JFrame (har allerede været i stand til at gøre det på JLabels i en JPanel på JFramen) 2. Sætter denne lytter i stand til at udføre handlinger på JFramen (selvom handlingen jf. punkt 1 foregår laaaaaangt væk fra JFramen).
Forvirringen er total! men jeg håber der er nogen derude der kan redde mig ud af suppedasen :-)
Tilføjelse: Det er nu lykkedes mig at add'de en mouseListener på det JPanel som knappen, jeg egentligt skulle have fat i, er på. Gad vide hvordan jeg kommer det sidste stykke ind i klassehierakiet og får fat på knappen???
Du tilføjer en ActionListener til den knap du vil lytte på: JButton myButton = new JButton("OK"); myButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { minMetodeTilAtLaveNogetPåMitJFrameObject(...); } });
Så skal du blot sørge for at du har adgang til din JFrame derfra.
Jf. dit foreslag skal jeg, som du selv siger have adgang til min JFrame fra det panel i min JInternalFrame på dekstoppen som er oprettet på netop JFramen... m.a.o. jeg skal være i stand til derfra (hvor knappen er oprettet) at oprette eller vise objekter på min aller yderste grænseflade (JFramen), hvilket jeg ikke lige kan gennemskue hvordan jeg gør. Jeg har jo ikke oprettet noget objekt af JFramen der hvor knappen oprettes... Objektoprettelsen går nærmest den anden vej...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.