Quote Originariamente inviata da andbin Visualizza il messaggio
Concettualmente non c'è (e non vedo) niente di sbagliato. Se il Component i-esimo nel JTabbedPane è realmente una istanza del TuoPannello che implementa InterfacePanel, allora il cast è valido e a runtime non deve certo fallire.

In generale un cast da una classe ad una interfaccia è sempre accettato dal compilatore (cosa poi succede a runtime è un altro discorso) tranne nel caso particolare in cui la classe è final e non implementa quella interfaccia (perché il compilatore può già provare a priori che il cast non avrebbe senso e fallirebbe sempre).
Esattamente, per esempio io aggiungo al TAB questa classe:

codice:
public class IN_Main extends javax.swing.JPanel implements Utility.FunctionsGUI.InterfacePanel
poi quando vado a fare il casting ottengo questo errore:
codice:
java.lang.ClassCastException: Hull.IN_Main$1 cannot be cast to Utility.FunctionsGUI.InterfacePanel
La cosa interessante è che il comando
codice:
getTabComponentAt(i).getClass().getInterfaces()
restituisce un array vuoto ma il nome della classe e la collocazione nel progetto sono corretti