Path: csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dr.UgoGagliardelli" Newsgroups: it.comp.java Subject: Re: da package a jframe Date: Fri, 16 Oct 2015 17:03:50 +0200 Organization: Aioe.org NNTP Server Lines: 26 Message-ID: References: NNTP-Posting-Host: WaLZV18Ng0nZiZih+JbaHw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com it.comp.java:8623 Il 16.10.2015 15.22, Gulp® ha scritto: > Ora perņ vorrei fare un ulteriore passaggio. > Ho inserito nella classe del frame this.addKeyListener(new KeyTab()); > Vorrei con > > if(evt.getKeyCode() == KeyEvent.VK_M){ > Frame f=(Frame) evt.getSource(); > f.dispose(); > e aprire il menu MENU.java > > Ma mi da ClassCastException: javax.swing.JTextField cannot be cast to > java.awt.Frame > > Tieni presente che il controllo selezionato alla pressione di CTRL+M č > un jTextField > Non ha mica tutti i torti a incazzarsi. Comunque, io per capire quale sia l'ancestor piu' remoto del tuo JTextField utilizzerei il metodo statico SwingUtilities.getAncestorOfClass(Class c, Component comp) ovvero, nel tuo caso: Frame f=SwingUtilities.getAncestorOfClass(Frame.class, evt.getSource()); Nella classe SwingUtilities ci sono un sacco di metodi interessanti, tutti statici, che fanno comodoin molte situazioni. Te la segnalo.