{"id":34425,"date":"2023-03-05T14:27:40","date_gmt":"2023-03-05T08:57:40","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/"},"modified":"2023-03-05T14:27:40","modified_gmt":"2023-03-05T08:57:40","slug":"solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/","title":{"rendered":"[Solved] What to do when no base class exists to a certain common interface in Java Swing"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-24245663\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"24245663\" data-parentid=\"24245367\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>You can use the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/ahanin\/opencv-demo\/blob\/master\/src\/main\/java\/tk\/year\/opencv\/demo\/ui\/ActionListenerSupport.java\">interface<\/a> and create wrappers for each component type you need. <code>JTextFieldSupportWrapper<\/code> and <code>JComboboxSupportWrapper<\/code> both taking an instance of the wrapped object type and and delegating to the <code>addActionListener<\/code> methods.<\/p>\n<pre><code>abstract class ActionListenerSupportWrapper&lt;T extends JComponent&gt; \n    implements ActionListenerSupport\n{\n    protected final T comp;\n    protected ActionListenerSupportWrapper(T comp) {\n        this.comp = comp;\n    }\n }\n\n\/\/ for each supported component type\nclass JTextFieldSupportWrapper extends ActionListenerSupportWrapper&lt;JTextField&gt; {\n    void addActionListener(ActionListener l) {\n        comp.addActionListener(l);\n    }\n}\n<\/code><\/pre>\n<p>Now you could declare a map using the interface <code>ActionListenerSupport<\/code> and add wrapped instances into that map i&#8217;ll take a list for now.<\/p>\n<pre><code>List&lt;ActionListenerSupport&gt; l = \/\/ init\nJTextField tf = \/\/ lookup\nl.add(new JTextFieldSupportWrapper(tf));\n<\/code><\/pre>\n<p>hope this helps<\/p>\n<p>I think this post can be improved with reflection not having to create the subtypes on your own. But may be you loose some type safety at compile time.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What to do when no base class exists to a certain common interface in Java Swing <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] You can use the interface and create wrappers for each component type you need. JTextFieldSupportWrapper and JComboboxSupportWrapper both taking an instance of the wrapped object type and and delegating to the addActionListener methods. abstract class ActionListenerSupportWrapper&lt;T extends JComponent&gt; implements ActionListenerSupport { protected final T comp; protected ActionListenerSupportWrapper(T comp) { this.comp = comp; } } &#8230; <a title=\"[Solved] What to do when no base class exists to a certain common interface in Java Swing\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\" aria-label=\"More on [Solved] What to do when no base class exists to a certain common interface in Java Swing\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[1503,519,996,323,621],"class_list":["post-34425","post","type-post","status-publish","format-standard","hentry","category-solved","tag-actionlistener","tag-class","tag-interface","tag-java","tag-swing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] You can use the interface and create wrappers for each component type you need. JTextFieldSupportWrapper and JComboboxSupportWrapper both taking an instance of the wrapped object type and and delegating to the addActionListener methods. abstract class ActionListenerSupportWrapper&lt;T extends JComponent&gt; implements ActionListenerSupport { protected final T comp; protected ActionListenerSupportWrapper(T comp) { this.comp = comp; } } ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-05T08:57:40+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What to do when no base class exists to a certain common interface in Java Swing\",\"datePublished\":\"2023-03-05T08:57:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\"},\"wordCount\":121,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"actionlistener\",\"class\",\"interface\",\"java\",\"swing\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\",\"name\":\"[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2023-03-05T08:57:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What to do when no base class exists to a certain common interface in Java Swing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb","og_description":"[ad_1] You can use the interface and create wrappers for each component type you need. JTextFieldSupportWrapper and JComboboxSupportWrapper both taking an instance of the wrapped object type and and delegating to the addActionListener methods. abstract class ActionListenerSupportWrapper&lt;T extends JComponent&gt; implements ActionListenerSupport { protected final T comp; protected ActionListenerSupportWrapper(T comp) { this.comp = comp; } } ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/","og_site_name":"JassWeb","article_published_time":"2023-03-05T08:57:40+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What to do when no base class exists to a certain common interface in Java Swing","datePublished":"2023-03-05T08:57:40+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/"},"wordCount":121,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["actionlistener","class","interface","java","swing"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/","url":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/","name":"[Solved] What to do when no base class exists to a certain common interface in Java Swing - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-03-05T08:57:40+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-to-do-when-no-base-class-exists-to-a-certain-common-interface-in-java-swing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What to do when no base class exists to a certain common interface in Java Swing"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/34425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=34425"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/34425\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=34425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=34425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=34425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}