{"id":10486,"date":"2025-10-01T14:53:41","date_gmt":"2025-10-01T14:53:41","guid":{"rendered":"https:\/\/wp-test-1.sweethome3d.eu\/bovitmenyfejlesztoi-utmutato\/"},"modified":"2025-10-31T17:05:02","modified_gmt":"2025-10-31T17:05:02","slug":"bovitmenyfejlesztoi-utmutato","status":"publish","type":"page","link":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/bovitmenyfejlesztoi-utmutato\/","title":{"rendered":"B\u0151v\u00edtm\u00e9nyfejleszt\u0151i \u00fatmutat\u00f3"},"content":{"rendered":"<ul class=\"simpletoc-list\">\n<li><a href=\"#bevezetes\">Bevezet\u00e9s<\/a>\n\n<\/li>\n<li><a href=\"#fejlesztoi-eszkozok-telepitese\">Fejleszt\u0151i eszk\u00f6z\u00f6k telep\u00edt\u00e9se<\/a>\n\n\n<\/li>\n\n<li><a href=\"#bovitmeny-programozasa\">B\u0151v\u00edtm\u00e9ny programoz\u00e1sa<\/a>\n\n\n<\/li>\n\n<\/li>\n\n<\/li>\n\n<\/li>\n\n<\/li>\n\n<li><a href=\"#tovabb\">Tov\u00e1bb<\/a>\n\n\n<\/li>\n\n<\/li>\n\n<\/li>\n\n<\/li>\n<\/li>\n<\/ul>\n<\/li><\/ul><h2 class=\"wp-block-heading\" id=\"bevezetes\"><img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"12\" src=\"https:\/\/www.sweethome3d.com\/images\/bullet.gif\">Bevezet\u00e9s<\/h2>\n<p>Az 1.5-\u00f6s verzi\u00f3t\u00f3l kezdve \u00faj funkci\u00f3kat adhatsz hozz\u00e1 a <a href=\"\/\">Sweet Home 3D<\/a>-hez a <a href=\"#deployingPlugin\">b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1ba<\/a> helyezett b\u0151v\u00edtm\u00e9nyf\u00e1jlokkal. Ez lehet\u0151v\u00e9 teszi a Java programoz\u00f3k sz\u00e1m\u00e1ra, hogy \u00faj funkci\u00f3kat fejlesszenek \u00e9s terjesszenek a Sweet Home 3D-hez an\u00e9lk\u00fcl, hogy m\u00f3dos\u00edtan\u00e1k az aktu\u00e1lis verzi\u00f3 forr\u00e1sf\u00e1jljait (ami j\u00f3 a felfel\u00e9 kompatibilit\u00e1s szempontj\u00e1b\u00f3l), \u00e9s an\u00e9lk\u00fcl, hogy a program teljes verzi\u00f3j\u00e1t kellene sz\u00e1ll\u00edtaniuk (ami j\u00f3 a sz\u00e1ll\u00edt\u00e1si m\u00e9ret szempontj\u00e1b\u00f3l).<br\/>Ez a dokumentum le\u00edrja a b\u0151v\u00edtm\u00e9nyek l\u00e9trehoz\u00e1s\u00e1hoz sz\u00fcks\u00e9ges <a href=\"#installingTools\" data-type=\"internal\" data-id=\"#installingTools\">eszk\u00f6z\u00f6ket<\/a>, majd bemutatja, hogyan kell <a href=\"#programmingPlugin\">programozni egy b\u0151v\u00edtm\u00e9nyt<\/a>, amely kisz\u00e1m\u00edtja az otthonhoz hozz\u00e1adott mozgathat\u00f3 b\u00fatorok maxim\u00e1lis t\u00e9rfogat\u00e1t, \u00e9s v\u00e9g\u00fcl n\u00e9h\u00e1ny <a href=\"#goingFurther\">tov\u00e1bbi inform\u00e1ci\u00f3t<\/a> ad, amely seg\u00edt a tov\u00e1bbfejl\u0151d\u00e9sben. <\/p>\n<h2 class=\"wp-block-heading\" id=\"fejlesztoi-eszkozok-telepitese\"><img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"12\" src=\"https:\/\/www.sweethome3d.com\/images\/bullet.gif\">Fejleszt\u0151i eszk\u00f6z\u00f6k telep\u00edt\u00e9se<\/h2>\n<p>B\u00e1r a Sweet Home 3D \u00e1ltal\u00e1nos k\u00f6z\u00f6ns\u00e9get c\u00e9loz meg, a b\u0151v\u00edtm\u00e9nyek fejleszt\u00e9se speci\u00e1lis k\u00e9szs\u00e9geket ig\u00e9nyel, \u00e9s miel\u0151tt tov\u00e1bbmenn\u00e9l, tudnod kell programozni <a href=\"https:\/\/java.sun.com\" target=\"_blank\" rel=\"noopener\">Java<\/a> nyelven egy IDE<a href=\"https:\/\/ant.apache.org\/\" target=\"_blank\" rel=\"noopener\"><\/a> seg\u00edts\u00e9g\u00e9vel. Ez az \u00fatmutat\u00f3 bemutatja, hogyan \u00e9p\u00edthetsz b\u0151v\u00edtm\u00e9nyt az <a href=\"https:\/\/www.eclipse.org\/\" target=\"_blank\" rel=\"noopener\">Eclipse<\/a> seg\u00edts\u00e9g\u00e9vel, de haszn\u00e1lhatod a v\u00e1lasztott IDE-t, vagy ak\u00e1r egy\u00e1ltal\u00e1n nem is haszn\u00e1lsz IDE-t. <\/p>\n<h3 class=\"wp-block-heading\" id=\"eclipse-letoltese-es-telepitese\">Eclipse let\u00f6lt\u00e9se \u00e9s telep\u00edt\u00e9se<\/h3>\n<p>El\u0151sz\u00f6r t\u00f6ltsd le az Eclipse-t a <a href=\"https:\/\/www.eclipse.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.eclipse.org\/<\/a> c\u00edmr\u0151l. A <em>Eclipse IDE for Java Developers<\/em> nev\u0171 verzi\u00f3 elegend\u0151 egy b\u0151v\u00edtm\u00e9ny fejleszt\u00e9s\u00e9hez, de b\u00e1rmilyen Java fejleszt\u00e9shez k\u00e9sz\u00fclt verzi\u00f3t let\u00f6lthetsz. <br\/>Miut\u00e1n let\u00f6lt\u00f6tted, az Eclipse telep\u00edt\u00e9se nagyon egyszer\u0171: csak csomagold ki a kapott arch\u00edvumot, nyisd meg az eclipse mapp\u00e1t, \u00e9s a rendszeredt\u0151l f\u00fcgg\u0151en futtasd a nev\u0171 f\u00e1jlt  <code>eclipse.exe<\/code>  (Windows alatt),  <code>eclipse.app<\/code>  (Mac OS X alatt) vagy  <code>eclipse<\/code>  (Linux alatt).<br\/>Az els\u0151 futtat\u00e1skor az Eclipse megk\u00e9r, hogy v\u00e1lassz egy <em>munkater\u00fclet<\/em> mapp\u00e1t, ahol a b\u0151v\u00edtm\u00e9nyprojektek t\u00e1rol\u00f3dnak majd.<br\/>Ha ez megvan, v\u00e1laszd a men\u00fcb\u0151l a <em>F\u00e1jl &gt; \u00daj &gt; Projekt<\/em> lehet\u0151s\u00e9get egy \u00faj projekt l\u00e9trehoz\u00e1s\u00e1hoz, v\u00e1laszd a <em>Java &gt; Java projekt<\/em> lehet\u0151s\u00e9get a megjelen\u0151 <em>\u00daj projekt<\/em> var\u00e1zsl\u00f3ban, add meg a VolumePlugin nevet projektk\u00e9nt, \u00e9s kattints a <em>Befejez\u00e9s<\/em> gombra. V\u00e9g\u00fcl z\u00e1rd be az <em>\u00dcdv\u00f6zl\u0151<\/em> f\u00fclet, hogy felfedezd a munkater\u00fcletedet az 1. \u00e1br\u00e1n l\u00e1that\u00f3 m\u00f3don. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"315\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipse.png\" alt=\"B&#x151;v&#xED;tm&#xE9;nyfejleszt&#x151;i &#xFA;tmutat&#xF3;\" class=\"wp-image-5073\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipse.png 388w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipse-360x292.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipse-160x130.png 160w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><figcaption class=\"wp-element-caption\"><em>1. \u00e1bra. Eclipse munkater\u00fclet <\/em><\/figcaption><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"sweet-home-3d-konyvtar-letoltese-es-telepitese\">Sweet Home 3D k\u00f6nyvt\u00e1r let\u00f6lt\u00e9se \u00e9s telep\u00edt\u00e9se<\/h3>\n<p>Egy b\u0151v\u00edtm\u00e9ny fejleszt\u00e9se a Sweet Home 3D bizonyos oszt\u00e1lyain alapul, amelyeket az Eclipse-nek ismernie kell ahhoz, hogy k\u00e9pes legyen fel\u00e9p\u00edteni a projektedet. A Sweet Home 3D oszt\u00e1lyok Eclipse-hez val\u00f3 hozz\u00e1ad\u00e1s\u00e1nak legegyszer\u0171bb m\u00f3dja a Sweet Home 3D JAR futtathat\u00f3 verzi\u00f3j\u00e1nak let\u00f6lt\u00e9se, amely el\u00e9rhet\u0151 a <a href=\"https:\/\/sourceforge.net\/projects\/sweethome3d\/files\/SweetHome3D\/SweetHome3D-7.5\/SweetHome3D-7.5.jar\/download\" target=\"_blank\" rel=\"noopener\">https:\/\/sourceforge.net\/projects\/sweethome3d\/files\/SweetHome3D\/SweetHome3D-7.5\/SweetHome3D-7.5.jar\/download<\/a> c\u00edmen. Miut\u00e1n let\u00f6lt\u00f6tted, h\u00fazd \u00e1t a SweetHome3D-7.5.jar f\u00e1jlt az <em>VolumePlugin<\/em> projekt ikonj\u00e1ra az Eclipse <em>Package Explorer<\/em> n\u00e9zet\u00e9ben, \u00e9s v\u00e1laszd a <em>Build Path &gt; Add to Build Path<\/em> elemet a SweetHome3D-7.5.jar f\u00e1jl helyi men\u00fcj\u00e9ben, ahogy a 2. \u00e1br\u00e1n l\u00e1that\u00f3.  <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"157\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/addToBuildPath.png\" alt=\"\" class=\"wp-image-5075\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/addToBuildPath.png 452w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/addToBuildPath-360x125.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/addToBuildPath-374x130.png 374w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/addToBuildPath-400x139.png 400w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><figcaption class=\"wp-element-caption\"><em><em>2. \u00e1bra. SweetHome3D-7.5.jar hozz\u00e1ad\u00e1sa<br\/> a Build Path-hoz <\/em><\/em><\/figcaption><\/figure>\n<\/div>\n<p><\/p>\n<h2 class=\"wp-block-heading\" id=\"bovitmeny-programozasa\"><img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"12\" src=\"https:\/\/www.sweethome3d.com\/images\/bullet.gif\">B\u0151v\u00edtm\u00e9ny programoz\u00e1sa<\/h2>\n<p>Most, hogy telep\u00edtetted a sz\u00fcks\u00e9ges eszk\u00f6z\u00f6ket, n\u00e9zz\u00fck meg, hogyan programozhatod az els\u0151 b\u0151v\u00edtm\u00e9nyedet a Sweet Home 3D-hez.<\/p>\n<h3 class=\"wp-block-heading\" id=\"a-bovitmenyosztaly-letrehozasa\">A b\u0151v\u00edtm\u00e9nyoszt\u00e1ly l\u00e9trehoz\u00e1sa<\/h3>\n<p>El\u0151sz\u00f6r hozz l\u00e9tre egy \u00faj aloszt\u00e1lyt a com.eteks.sweethome3d.plugin.Plugin-b\u0151l az Eclipse men\u00fcj\u00e9ben a <em>F\u00e1jl &gt; \u00daj &gt; Oszt\u00e1ly<\/em> men\u00fcpont kiv\u00e1laszt\u00e1s\u00e1val.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"509\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newJavaClass.png\" alt=\"\" class=\"wp-image-5076\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newJavaClass.png 418w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newJavaClass-296x360.png 296w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newJavaClass-107x130.png 107w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newJavaClass-400x487.png 400w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><figcaption class=\"wp-element-caption\"><em><em><em>3. \u00e1bra. \u00daj oszt\u00e1ly l\u00e9trehoz\u00e1sa <\/em><\/em><\/em><\/figcaption><\/figure>\n<\/div>\n<p>Az <em>\u00daj Java oszt\u00e1ly<\/em> p\u00e1rbesz\u00e9dpanelen add meg a VolumePlugin nevet oszt\u00e1lyn\u00e9vk\u00e9nt, adj meg egy csomagot (itt a v\u00e1lasztott csomag a com.eteks.test volt), \u00e9s v\u00e1laszd a com.eteks.sweethome3d.plugin.Plugin-t a VolumePlugin szuperoszt\u00e1lyak\u00e9nt. Ha ez megvan, kattints a <em>Befejez\u00e9s<\/em> gombra. Az Eclipse l\u00e9trehozza az \u00faj oszt\u00e1ly f\u00e1jlj\u00e1t a k\u00f6vetkez\u0151 tartalommal:  <\/p>\n\n<pre class=\"wp-block-preformatted\">package com.eteks.test;<br\/>import com.eteks.sweethome3d.plugin.Plugin;<br\/>import com.eteks.sweethome3d.plugin.PluginAction;<br\/>public class <strong>VolumePlugin<\/strong> extends <strong>Plugin<\/strong> {<br\/> @Override<br\/> public PluginAction[] <strong>getActions<\/strong>() {<br\/> \/\/ TODO Automatikusan gener\u00e1lt met\u00f3dus csonk<br\/> return null;<br\/> }<br\/>}<\/pre>\n\n<p>Ahogy a TODO megjegyz\u00e9sb\u0151l sejtheted, most m\u00f3dos\u00edtanod kell a getActions met\u00f3dus implement\u00e1ci\u00f3j\u00e1t, hogy egy olyan b\u0151v\u00edtm\u00e9nyakci\u00f3t adjon vissza, amely k\u00e9pes kisz\u00e1m\u00edtani a mozgathat\u00f3 b\u00fatorok t\u00e9rfogat\u00e1t. Cser\u00e9ld le a return null; sort a k\u00f6vetkez\u0151 utas\u00edt\u00e1sra: <\/p>\n\n<pre class=\"wp-block-preformatted\">  return new <strong>PluginAction<\/strong> [] {new <strong>VolumeAction<\/strong>()};  <\/pre>\n\n<p>\u00e9s v\u00e1laszd az Eclipse men\u00fcj\u00e9b\u0151l az <em>Szerkeszt\u00e9s &gt; Gyorsjav\u00edt\u00e1s<\/em> lehet\u0151s\u00e9get a hi\u00e1nyz\u00f3 VolumeAction oszt\u00e1ly l\u00e9trehoz\u00e1s\u00e1hoz, ahogy a 4. \u00e1br\u00e1n l\u00e1that\u00f3.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"117\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/quickFix.png\" alt=\"\" class=\"wp-image-5077\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/quickFix.png 615w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/quickFix-360x68.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/quickFix-400x76.png 400w\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" \/><figcaption class=\"wp-element-caption\"><em>4. \u00e1bra. Gyorsjav\u00edt\u00e1s haszn\u00e1lata hi\u00e1nyz\u00f3 oszt\u00e1ly gener\u00e1l\u00e1s\u00e1hoz <\/em><\/figcaption><\/figure>\n<\/div>\n<p>A megjelen\u0151 <em>\u00daj Java oszt\u00e1ly<\/em> p\u00e1rbesz\u00e9dpanelen jel\u00f6ld be az <em>Befoglal\u00f3 t\u00edpus<\/em> jel\u00f6l\u0151n\u00e9gyzetet a VolumePlugin bels\u0151 oszt\u00e1ly\u00e1nak l\u00e9trehoz\u00e1s\u00e1hoz, majd kattints a <em>Befejez\u00e9s<\/em> gombra. Ez l\u00e9trehozza a VolumeAction oszt\u00e1lyt, amely a com.eteks.sweethome3d.plugin.PluginAction oszt\u00e1lyb\u00f3l \u00f6r\u00f6kl\u0151dik, \u00e9s tartalmaz egy \u00fcres execute met\u00f3dust: <\/p>\n\n<pre class=\"wp-block-preformatted\">  public class <strong>VolumeAction<\/strong> extends <strong>PluginAction<\/strong> {<br\/> @Override<br\/> public void <strong>execute<\/strong>() {<br\/> \/\/ TODO Automatikusan gener\u00e1lt met\u00f3dus csonk<br\/> }<br\/> }<\/pre>\n\n<p>Ezt a met\u00f3dust fogja megh\u00edvni a Sweet Home 3D, amikor a felhaszn\u00e1l\u00f3 elind\u00edtja a b\u0151v\u00edtm\u00e9nyakci\u00f3t; teh\u00e1t itt kell implement\u00e1lnod, hogyan sz\u00e1m\u00edtsd ki \u00e9s jelen\u00edtsd meg a b\u00fatorok t\u00e9rfogat\u00e1t:<\/p>\n\n<pre class=\"wp-block-preformatted\">  public class <strong>VolumeAction<\/strong> extends <strong>PluginAction<\/strong> {  <br\/>  @Override<br\/>  public void <strong>execute<\/strong>() { <br\/>  float volumeInCm3 = 0;<br\/> \/\/ Sz\u00e1molja ki az otthonban l\u00e9v\u0151 minden mozgathat\u00f3 b\u00fatordarab<br\/> \/\/ hat\u00e1rol\u00f3 doboz\u00e1nak t\u00e9rfogat\u00f6sszeg\u00e9t<br\/> for (PieceOfFurniture piece : <strong>getHome<\/strong>(). <strong>getFurniture<\/strong>()) {<br\/> if (piece. <strong>isMovable<\/strong>()) {<br\/> volumeInCm3 += piece. <strong>getWidth<\/strong>() <br\/> * piece. <strong>getDepth<\/strong>() <br\/> * piece. <strong>getHeight<\/strong>();<br\/>  }<br\/> }<br\/>            <br\/> \/\/ Az eredm\u00e9ny megjelen\u00edt\u00e9se egy \u00fczenetdobozban (\u00b3 a fels\u0151 indexben l\u00e9v\u0151 3-at jel\u00f6li)<br\/> String message = String. <g id=\"gid_0\">format<\/g>(<br\/> \"Az otthonban l\u00e9v\u0151 mozgathat\u00f3 b\u00fatorok maxim\u00e1lis t\u00e9rfogata %.2f m\u00b3.\", <br\/> volumeInCm3 \/ 1000000);<br\/> JOptionPane. <strong>showMessageDialog<\/strong>(null, message);<br\/>  }<br\/>  }<\/pre>\n\n<p>Most, hogy meghat\u00e1roztad, mit szeretn\u00e9l, hogy a b\u0151v\u00edtm\u00e9ny csin\u00e1ljon, le kell \u00edrnod, hogyan ind\u00edtja el a felhaszn\u00e1l\u00f3 ezt az \u00faj akci\u00f3t. V\u00e1laszthatsz, hogy \u00faj <strong>men\u00fcpontot<\/strong> adsz egy men\u00fch\u00f6z, \u00e9s\/vagy \u00faj <strong>gombot<\/strong> az eszk\u00f6zt\u00e1rhoz. Ezt a v\u00e1laszt\u00e1st a b\u0151v\u00edtm\u00e9nyakci\u00f3 megfelel\u0151 tulajdons\u00e1gainak be\u00e1ll\u00edt\u00e1s\u00e1val teheted meg a l\u00e9trehoz\u00e1sakor. P\u00e9ld\u00e1ul, ha azt szeretn\u00e9d, hogy a felhaszn\u00e1l\u00f3k a <em>T\u00e9rfogat sz\u00e1m\u00edt\u00e1sa<\/em> men\u00fcponttal ind\u00edts\u00e1k el a t\u00e9rfogatsz\u00e1m\u00edt\u00f3 akci\u00f3t, amely a <em>Eszk\u00f6z\u00f6k<\/em> men\u00fcben tal\u00e1lhat\u00f3, akkor a k\u00f6vetkez\u0151 konstruktort adod hozz\u00e1 a VolumnAction oszt\u00e1lyhoz:   <\/p>\n\n<pre class=\"wp-block-preformatted\">  public <strong>VolumeAction<\/strong>() {<br\/>           <strong>putPropertyValue<\/strong>(Property.NAME, \"T\u00e9rfogat sz\u00e1m\u00edt\u00e1sa\");<br\/>           <strong>putPropertyValue<\/strong>(Property.MENU, \"Eszk\u00f6z\u00f6k\");<br\/> \/\/ Alap\u00e9rtelmezetten enged\u00e9lyezi az akci\u00f3t<br\/>           <strong>setEnabled<\/strong>(true);<br\/> }<\/pre>\n\n<p>A <a href=\"\/examples\/VolumePlugin\/VolumePlugin.java\">VolumePlugin<\/a> b\u0151v\u00edtm\u00e9nyoszt\u00e1ly most m\u00e1r be van programozva, \u00e9s majdnem k\u00e9szen \u00e1ll arra, hogy b\u0151v\u00edtm\u00e9nyk\u00e9nt m\u0171k\u00f6dj\u00f6n a Sweet Home 3D-ben. Az utols\u00f3 k\u00e9t dolog, amit meg kell tenni: <\/p>\n\n<ul class=\"wp-block-list\">\n<li>egy <tt>ApplicationPlugin.properties<\/tt> le\u00edr\u00f3 f\u00e1jl l\u00e9trehoz\u00e1sa,<\/li>\n\n\n\n<li>a f\u00e1jlok egy JAR f\u00e1jlba val\u00f3 \u00f6ssze\u00e1ll\u00edt\u00e1sa.<br\/><\/li>\n<\/ul>\n<h3 class=\"wp-block-heading\" id=\"a-bovitmeny-leiro-fajl-letrehozasa\">A b\u0151v\u00edtm\u00e9ny le\u00edr\u00f3 f\u00e1jl l\u00e9trehoz\u00e1sa<\/h3>\n<p>Egy <tt>ApplicationPlugin.properties<\/tt> f\u00e1jl\n le\u00edrja a b\u0151v\u00edtm\u00e9ny nev\u00e9t, oszt\u00e1ly\u00e1t, a Sweet Home 3D \u00e9s Java minim\u00e1lis verzi\u00f3it, amelyek alatt t\u00e1mogatott,\n valamint jogi inform\u00e1ci\u00f3kat. V\u00e1laszd az <i>F\u00e1jl &gt; \u00daj &gt; F\u00e1jl<\/i> men\u00fcpontot az\n Eclipse men\u00fcj\u00e9b\u0151l, add meg a f\u00e1jlnevet <tt>ApplicationPlugin.properties<\/tt>-k\u00e9nt, \u00e9s kattints a <i>Befejez\u00e9s<\/i> gombra, ahogy az\n 5. \u00e1br\u00e1n l\u00e1that\u00f3. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"264\" height=\"384\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newFile.png\" alt=\"\" class=\"wp-image-5079\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newFile.png 264w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newFile-248x360.png 248w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/newFile-89x130.png 89w\" sizes=\"auto, (max-width: 264px) 100vw, 264px\" \/><figcaption class=\"wp-element-caption\"><em>5. \u00e1bra. \u00daj f\u00e1jl l\u00e9trehoz\u00e1sa <\/em><\/figcaption><\/figure>\n<\/div>\n<p>Ezut\u00e1n \u00edrd be a <a href=\"\/examples\/VolumePlugin\/ApplicationPlugin.properties\">k\u00f6vetkez\u0151 le\u00edr\u00e1st<\/a> az \u00faj f\u00e1jlba, \u00e9s mentsd el:<\/p>\n\n<pre class=\"wp-block-preformatted\"><strong>name<\/strong>=Mozgathat\u00f3 b\u00fatorok t\u00e9rfogata<br\/><strong>class<\/strong>=com.eteks.test.VolumePlugin<br\/><strong>description<\/strong>=Kisz\u00e1m\u00edtja az otthonban l\u00e9v\u0151 mozgathat\u00f3 b\u00fatorok t\u00e9rfogat\u00e1t<br\/><strong>version<\/strong>=1.0<br\/><strong>license<\/strong>=GNU GPL<br\/><strong>provider<\/strong>=(C) Copyrights 2024 Space Mushrooms<br\/><strong>applicationMinimumVersion<\/strong>=1.5<br\/><strong>javaMinimumVersion<\/strong>=1.5<\/pre>\n<h3 class=\"wp-block-heading\" id=\"a-bovitmeny-jar-letrehozasa\">A b\u0151v\u00edtm\u00e9ny JAR l\u00e9trehoz\u00e1sa<\/h3>\n<p>A b\u0151v\u00edtm\u00e9ny JAR tartalmazza a <tt>class<\/tt> f\u00e1jlokat, amelyek a <tt>VolumePlugin.java<\/tt> f\u00e1jl ford\u00edt\u00e1s\u00e1b\u00f3l j\u00f6ttek l\u00e9tre,\n valamint az <tt>ApplicationPlugin.properties<\/tt> f\u00e1jlt. Mivel az Eclipse azonnal leford\u00edtja a Java f\u00e1jlt, amint elmented, neked\n csak annyit kell tenned, hogy kiv\u00e1lasztod a men\u00fcb\u0151l a <i>F\u00e1jl &gt; Export\u00e1l\u00e1s&#8230;<\/i> lehet\u0151s\u00e9get, \u00e9s kiv\u00e1lasztod a <i>Java &gt; JAR f\u00e1jl<\/i> lehet\u0151s\u00e9get a megjelen\u0151 <i>Export\u00e1l\u00e1s<\/i> p\u00e1rbesz\u00e9dpanelen\n. A 6. \u00e1br\u00e1n l\u00e1that\u00f3 <i>Jar Export\u00e1l\u00e1s<\/i> var\u00e1zsl\u00f3ban jel\u00f6ld be a projekt jel\u00f6l\u0151n\u00e9gyzetet\n, \u00e9s add meg egy JAR f\u00e1jl el\u00e9r\u00e9si \u00fatj\u00e1t, amelyet a Sweet Home 3D b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1ba helyezel. Ez a megfelel\u0151 mappa a rendszeredt\u0151l f\u00fcgg\u0151en a k\u00f6vetkez\u0151:   <\/p>\n\n<ul class=\"wp-block-list\">\n<li>  Windows Vista \/ 7 \/ 8 \/ 10 \/ 11 alatt ez a mappa: <tt>C:\\Users\\<i>felhaszn\u00e1l\u00f3<\/i>\\AppData\\Roaming\\eTeks\\Sweet\n Home 3D\\plugins<\/tt>,<\/li>\n\n\n\n<li>  Windows XP \u00e9s kor\u00e1bbi Windows verzi\u00f3k alatt ez a mappa: <tt>C:\\Documents and Settings\\<i>felhaszn\u00e1l\u00f3<\/i>\\Application Data\\eTeks\\Sweet\n Home 3D\\plugins<\/tt>,<\/li>\n\n\n\n<li>  macOS alatt a <tt>Library\/Application Support\/eTeks\/Sweet Home 3D\/<\/tt><tt>plugins<\/tt> almappa a\n felhaszn\u00e1l\u00f3i mapp\u00e1dban,<\/li>\n\n\n\n<li>  Linux \u00e9s m\u00e1s Unix rendszerek alatt a <tt>.eteks\/sweethome3d\/<\/tt><tt>plugins<\/tt> almappa a felhaszn\u00e1l\u00f3i mapp\u00e1dban.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"440\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/jarExport.png\" alt=\"\" class=\"wp-image-5081\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/jarExport.png 499w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/jarExport-360x317.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/jarExport-147x130.png 147w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/jarExport-400x353.png 400w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><figcaption class=\"wp-element-caption\"><em><em>6. \u00e1bra. Export\u00e1l\u00e1s JAR f\u00e1jlba <\/em><\/em><\/figcaption><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"a-bovitmeny-tesztelese\">A b\u0151v\u00edtm\u00e9ny tesztel\u00e9se<\/h3>\n<p>Az \u00e1ltalad fejlesztett <a href=\"\/examples\/VolumePlugin\/VolumePlugin.jar\">b\u0151v\u00edtm\u00e9ny<\/a> futni fog a Sweet Home 3D-ben, ak\u00e1r a <a href=\"\/storage\/SweetHome3D.jnlp\">Java Web Start<\/a> verzi\u00f3val, az <a href=\"https:\/\/downloads.sourceforge.net\/sweethome3d\/\" class=\"broken_link\" target=\"_blank\" rel=\"noopener\">telep\u00edt\u0151k<\/a> verzi\u00f3j\u00e1val, vagy a kor\u00e1bban let\u00f6lt\u00f6tt <a href=\"https:\/\/sourceforge.net\/projects\/sweethome3d\/files\/SweetHome3D\/SweetHome3D-7.5\/SweetHome3D-7.5.jar\/download\" target=\"_blank\" rel=\"noopener\">SweetHome3D-7.5.jar<\/a> f\u00e1jllal. Mivel az ut\u00f3bbi egy futtathat\u00f3 JAR, futtathatod r\u00e1 dupl\u00e1n kattintva, vagy a k\u00f6vetkez\u0151 paranccsal: <\/p>\n\n<p>Az \u00e1ltalad fejlesztett <a href=\"\/examples\/VolumePlugin\/VolumePlugin.jar\">b\u0151v\u00edtm\u00e9ny<\/a> futni fog a Sweet Home 3D-ben, ak\u00e1r a <a href=\"\/storage\/SweetHome3D.jnlp\">Java Web Start<\/a> verzi\u00f3val, az <a href=\"https:\/\/downloads.sourceforge.net\/sweethome3d\/\" class=\"broken_link\" target=\"_blank\" rel=\"noopener\">telep\u00edt\u0151k<\/a> verzi\u00f3j\u00e1val, vagy a kor\u00e1bban let\u00f6lt\u00f6tt <a href=\"https:\/\/sourceforge.net\/projects\/sweethome3d\/files\/SweetHome3D\/SweetHome3D-7.5\/SweetHome3D-7.5.jar\/download\" target=\"_blank\" rel=\"noopener\">SweetHome3D-7.5.jar<\/a> f\u00e1jllal. Mivel az ut\u00f3bbi egy futtathat\u00f3 JAR, futtathatod r\u00e1 dupl\u00e1n kattintva, vagy a k\u00f6vetkez\u0151 paranccsal: <\/p>\n\n<pre class=\"wp-block-preformatted\">java -jar \/<em>\u00fatvonal<\/em>\/<em>ide<\/em>\/SweetHome3D-7.5.jar<\/pre>\n\n<p>Am\u00edg tesztelsz, val\u00f3sz\u00edn\u0171leg ink\u00e1bb ezzel a paranccsal fogod futtatni a Sweet Home 3D-t, hogy a konzolon el tudd olvasni a b\u0151v\u00edtm\u00e9nyed fut\u00e1sa sor\u00e1n dobott kiv\u00e9telek stack trace-\u00e9t.<\/p>\n\n<p>Miut\u00e1n elindult a Sweet Home 3D, l\u00e1tni fogod az \u00faj men\u00fct \u00e9s annak elem\u00e9t, ahogy a 7. \u00e1br\u00e1n l\u00e1that\u00f3:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"53\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginMenu.png\" alt=\"\" class=\"wp-image-5082\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginMenu.png 447w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginMenu-360x43.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginMenu-400x47.png 400w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><figcaption class=\"wp-element-caption\"><em>7. \u00e1bra. B\u0151v\u00edtm\u00e9ny men\u00fc <\/em><\/figcaption><\/figure>\n<\/div>\n<p>Ha kiv\u00e1lasztod az \u00faj men\u00fcpontot a <a href=\"\/examples\/userGuideExample.sh3d\">otthon p\u00e9ld\u00e1hoz<\/a> l\u00e9trehozott <a href=\"https:\/\/wp-test-1.sweethome3d.eu\/hu\/sweet-home-3d-felhasznaloi-utmutato\/\" data-type=\"page\" data-id=\"424\">felhaszn\u00e1l\u00f3i \u00fatmutat\u00f3ban<\/a>, a k\u00f6vetkez\u0151 eredm\u00e9nyt kapod:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"137\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginInAction.png\" alt=\"\" class=\"wp-image-5084\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginInAction.png 448w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginInAction-360x110.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginInAction-425x130.png 425w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginInAction-400x122.png 400w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><figcaption class=\"wp-element-caption\"><em>8. \u00e1bra. B\u0151v\u00edtm\u00e9ny m\u0171k\u00f6d\u00e9s k\u00f6zben <\/em><\/figcaption><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"a-bovitmeny-hibakeresese\">A b\u0151v\u00edtm\u00e9ny hibakeres\u00e9se<\/h3>\n<p>Ha hibakeres\u00e9st szeretn\u00e9l v\u00e9gezni a b\u0151v\u00edtm\u00e9nyeden az Eclipse-b\u0151l, hozz l\u00e9tre egy hibakeres\u00e9si konfigur\u00e1ci\u00f3t a k\u00f6vetkez\u0151 l\u00e9p\u00e9sekkel:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>V\u00e1laszd a men\u00fcb\u0151l a <i>Futtat\u00e1s &gt; Hibakeres\u00e9si konfigur\u00e1ci\u00f3k&#8230;<\/i> lehet\u0151s\u00e9get, v\u00e1laszd a <i>Java alkalmaz\u00e1s<\/i> elemet a \n          <i>Hibakeres\u00e9si konfigur\u00e1ci\u00f3k<\/i> p\u00e1rbesz\u00e9dpanel el\u00e9rhet\u0151 konfigur\u00e1ci\u00f3inak list\u00e1j\u00e1ban, kattints a <i>\u00daj <\/i>gombra a bal fels\u0151 sarokban, \u00e9s adj meg egy nevet a konfigur\u00e1ci\u00f3nak.<\/li>\n\n\n\n<li>Kattints a <i>Keres\u00e9s&#8230;<\/i> gombra a <i>F\u0151 oszt\u00e1ly<\/i> sz\u00f6vegmez\u0151 jobb oldal\u00e1n, \u00e9s kattints dupl\u00e1n a <i>SweetHome3DBootstrap<\/i> oszt\u00e1lyra <br\/> a javasolt oszt\u00e1lyok k\u00f6z\u00fcl.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"390\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/debugConfiguration.png\" alt=\"\" class=\"wp-image-5085\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/debugConfiguration.png 629w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/debugConfiguration-360x223.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/debugConfiguration-210x130.png 210w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/debugConfiguration-400x248.png 400w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><figcaption class=\"wp-element-caption\"><em>9. \u00e1bra. Hibakeres\u00e9si konfigur\u00e1ci\u00f3 l\u00e9trehoz\u00e1sa <\/em><\/figcaption><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Kattints a <em>Classpath<\/em> f\u00fclre, v\u00e1laszd ki a <em>VolumePlugin (alap\u00e9rtelmezett classpath)<\/em> alpontot a <em>Felhaszn\u00e1l\u00f3i bejegyz\u00e9sek<\/em> elemb\u0151l a <em>Classpath<\/em> list\u00e1ban, majd kattints az <em>Elt\u00e1vol\u00edt\u00e1s<\/em> gombra.<\/li>\n\n\n\n<li>Kattints a<em> Felhaszn\u00e1l\u00f3i bejegyz\u00e9sek<\/em> elemre a <em>Classpath<\/em> list\u00e1ban, kattints az <em>JAR-ok hozz\u00e1ad\u00e1sa&#8230;<\/em> gombra, v\u00e1laszd ki a SweetHome3D-7.5.jar elemet, \u00e9s er\u0151s\u00edtsd meg a v\u00e1laszt\u00e1sodat.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"618\" height=\"482\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/classpathConfiguration.png\" alt=\"\" class=\"wp-image-5086\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/classpathConfiguration.png 618w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/classpathConfiguration-360x281.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/classpathConfiguration-167x130.png 167w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/classpathConfiguration-400x312.png 400w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><figcaption class=\"wp-element-caption\"><em><em>10. \u00e1bra. A hibakeres\u00e9si konfigur\u00e1ci\u00f3 classpathj\u00e1nak be\u00e1ll\u00edt\u00e1sa <\/em><\/em><\/figcaption><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>V\u00e1laszd ki a <em>Forr\u00e1s<\/em> f\u00fclet, kattints az <em>Hozz\u00e1ad\u00e1s\u2026<\/em> gombra, kattints dupl\u00e1n a <em>Java projekt<\/em> elemre az <em>Forr\u00e1s hozz\u00e1ad\u00e1sa<\/em> p\u00e1rbesz\u00e9dpanelen, v\u00e1laszd ki a <em>VolumePlugin<\/em> elemet a <em>Projekt kiv\u00e1laszt\u00e1sa<\/em> felugr\u00f3 ablakban, \u00e9s er\u0151s\u00edtsd meg a v\u00e1laszt\u00e1sodat.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"773\" height=\"549\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration.png\" alt=\"\" class=\"wp-image-5087\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration.png 773w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration-360x256.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration-183x130.png 183w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration-768x545.png 768w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/sourcepathConfiguration-400x284.png 400w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><figcaption class=\"wp-element-caption\"><em><em><em>11. \u00e1bra. A hibakeres\u00e9si konfigur\u00e1ci\u00f3 forr\u00e1s\u00fatvonal\u00e1nak be\u00e1ll\u00edt\u00e1sa <\/em><\/em><\/em><\/figcaption><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>V\u00e9g\u00fcl kattints a <i>Hibakeres\u00e9s<\/i> gombra a Sweet Home 3D hibakeres\u00e9si m\u00f3dban t\u00f6rt\u00e9n\u0151 elind\u00edt\u00e1s\u00e1hoz. Miut\u00e1n a program fut, nyisd meg a <g id=\"gid_1\">VolumePlugin.java<\/g> f\u00e1jlt,<x id=\"gid_2\"><\/x> \u00e1ll\u00edts be egy t\u00f6r\u00e9spontot az <g id=\"gid_3\">execute<\/g> met\u00f3dusban, \u00e9s v\u00e1laszd az <g id=\"gid_4\">Eszk\u00f6z\u00f6k <x id=\"gid_5\"><\/x> T\u00e9rfogat sz\u00e1m\u00edt\u00e1sa<\/g> lehet\u0151s\u00e9get a Sweet Home 3D men\u00fcj\u00e9b\u0151l. Az Eclipse meg\u00e1ll a kiv\u00e1lasztott \n t\u00f6r\u00e9sponton, hogy l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre v\u00e9grehajthasd a programot \u00e9s ellen\u0151rizhesd a v\u00e1ltoz\u00f3k \u00e9rt\u00e9k\u00e9t.  <\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"398\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipseDebug.png\" alt=\"\" class=\"wp-image-5088\" srcset=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipseDebug.png 601w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipseDebug-360x238.png 360w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipseDebug-196x130.png 196w, https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/eclipseDebug-400x265.png 400w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><figcaption class=\"wp-element-caption\"><em><em><em><em>12. \u00e1bra. Eclipse hibakeres\u00e9si n\u00e9zet <\/em><\/em><\/em><\/em><\/figcaption><\/figure>\n<\/div>\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-64989fb1 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"21\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/09\/warning-1.gif\" alt=\"\" class=\"wp-image-4679\" style=\"width:21px\"\/><\/figure>\n\n\n\n<p>Minden alkalommal, amikor m\u00f3dos\u00edtod a b\u0151v\u00edtm\u00e9nyed forr\u00e1sk\u00f3dj\u00e1t, ne felejtsd el <a href=\"#creatingPluginJAR\">gener\u00e1lni a b\u0151v\u00edtm\u00e9ny JAR-t<\/a>, miel\u0151tt elind\u00edtan\u00e1d a l\u00e9trehozott hibakeres\u00e9si konfigur\u00e1ci\u00f3t. Az Eclipse-ben a JAR export\u00e1l\u00e1si folyamat felgyors\u00edt\u00e1s\u00e1hoz l\u00e9pj a JAR export\u00e1l\u00e1si var\u00e1zsl\u00f3 m\u00e1sodik l\u00e9p\u00e9s\u00e9re, \u00e9s v\u00e1laszd az <em>A JAR le\u00edr\u00e1s\u00e1nak ment\u00e9se a munkater\u00fcletre<\/em> opci\u00f3t. Ez egy \u00faj elemet ad hozz\u00e1 a projekthez egy helyi men\u00fcvel, amelyben szerepel a <em>JAR l\u00e9trehoz\u00e1sa<\/em> men\u00fcpont.  <\/p>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"a-bovitmeny-telepitese\">A b\u0151v\u00edtm\u00e9ny telep\u00edt\u00e9se<\/h3>\n<p>Ha elk\u00e9sz\u00fclt, a b\u0151v\u00edtm\u00e9nyed telep\u00edthet\u0151 m\u00e1s Sweet Home 3D felhaszn\u00e1l\u00f3k sz\u00e1m\u00edt\u00f3g\u00e9p\u00e9re egyszer\u0171en \u00fagy, hogy bem\u00e1solod a <a href=\"#creatingPluginJAR\">b\u0151v\u00edtm\u00e9nyek mapp\u00e1jukba<\/a>. Az 1.6-os verzi\u00f3t\u00f3l kezdve egy b\u0151v\u00edtm\u00e9nyf\u00e1jl a Sweet Home 3D b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1ba is telep\u00edthet\u0151 r\u00e1 dupl\u00e1n kattintva, ha a kiterjeszt\u00e9se SH3P (egyszer\u0171en v\u00e1ltoztasd meg a f\u00e1jlkiterjeszt\u00e9st .zip-r\u0151l .sh3p-re). Ha egy .sh3p f\u00e1jlra dupl\u00e1n kattintva nem indul el a Sweet Home 3D (legink\u00e1bb Linux alatt), akkor a b\u0151v\u00edtm\u00e9nyt a k\u00f6vetkez\u0151 paranccsal is telep\u00edtheted egy <em>Termin\u00e1l<\/em> ablakban (ahol    <code>SweetHome3D<\/code>  a Sweet Home 3D telep\u00edt\u0151kkel egy\u00fctt sz\u00e1ll\u00edtott futtathat\u00f3 f\u00e1jl neve):<\/p>\n\n<pre class=\"wp-block-preformatted\"><em>\/\u00fatvonal\/ide\/<\/em>SweetHome3D <em>\/\u00fatvonal\/ide\/<\/em>plugin.sh3p<\/pre>\n\n<p>Egy b\u0151v\u00edtm\u00e9ny haszn\u00e1lat\u00e1nak le\u00e1ll\u00edt\u00e1s\u00e1hoz t\u00e1vol\u00edtsd el a f\u00e1jlj\u00e1t a b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1b\u00f3l, \u00e9s ind\u00edtsd \u00fajra a Sweet Home 3D-t.<\/p>\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-64989fb1 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"21\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/09\/warning-1.gif\" alt=\"\" class=\"wp-image-4679\" style=\"width:21px\"\/><\/figure>\n\n\n\n<p>Ha azt szeretn\u00e9d, hogy a b\u0151v\u00edtm\u00e9nyed futni tudjon az \u00f6sszes, ezen a weboldalon el\u00e9rhet\u0151 <a href=\"http:\/\/download\">Sweet Home 3D telep\u00edt\u0151vel<\/a>, \u00fcgyelj arra, hogy kompatibilis maradjon a Java 5-tel, a <code>1.5<\/code> kiv\u00e1laszt\u00e1s\u00e1val az <em>Ford\u00edt\u00f3 kompatibilit\u00e1si szintje<\/em> mez\u0151ben, amely az Eclipse <em>Projekt &gt; Tulajdons\u00e1gok<\/em> men\u00fcpontja \u00e1ltal megjelen\u00edtett p\u00e1rbesz\u00e9dpanel <em>Java ford\u00edt\u00f3<\/em> szakasz\u00e1ban tal\u00e1lhat\u00f3.<br\/>Ha olyan Java ford\u00edt\u00f3 verzi\u00f3t haszn\u00e1lsz, ahol a Java 1.5 kompatibilit\u00e1s m\u00e1r nem el\u00e9rhet\u0151, pr\u00f3b\u00e1lj meg legal\u00e1bb Java 1.8-at c\u00e9lozni, amelyet m\u00e9g mindig haszn\u00e1lnak a Sweet Home 3D leg\u00fajabb verzi\u00f3iban, \u00e9s \u00e1ll\u00edtsd be <code>javaMinimumVersion<\/code> a b\u0151v\u00edtm\u00e9nyed <code>ApplicationPlugin.properties<\/code> f\u00e1jlj\u00e1ban ennek megfelel\u0151en.<\/p>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"tovabb\"><img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"12\" src=\"https:\/\/www.sweethome3d.com\/images\/bullet.gif\">Tov\u00e1bb<\/h2>\n<p>Az els\u0151 b\u0151v\u00edtm\u00e9ny programoz\u00e1sa \u00e1tfog\u00f3 k\u00e9pet adott. \u00cdme n\u00e9h\u00e1ny tov\u00e1bbi inform\u00e1ci\u00f3, ami seg\u00edt a tov\u00e1bbfejl\u0151d\u00e9sben. <\/p>\n<h3 class=\"wp-block-heading\" id=\"sweet-home-3d-api-javadoc\">Sweet Home 3D API &#8211; javadoc<\/h3>\n<p>A leghasznosabb dokument\u00e1ci\u00f3 egy \u00faj b\u0151v\u00edtm\u00e9ny fejleszt\u00e9s\u00e9hez a javadoc eszk\u00f6zzel gener\u00e1lt <a href=\"\/javadoc\/index.html\">Sweet Home 3D API<\/a> (alkalmaz\u00e1sprogramoz\u00e1si fel\u00fclet).<br\/>Csak a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/package-summary.html\">com.eteks.sweethome3d.plugin<\/a>, <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/package-summary.html\">com.eteks.sweethome3d.model<\/a>, <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/tools\/package-summary.html\">com.eteks.sweethome3d.tools<\/a> \u00e9s <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/viewcontroller\/package-summary.html\">com.eteks.sweethome3d.viewcontroller<\/a> csomagok oszt\u00e1lyait haszn\u00e1ld a b\u0151v\u00edtm\u00e9nyedben, ha azt szeretn\u00e9d, hogy kompatibilis legyen a Sweet Home 3D j\u00f6v\u0151beli verzi\u00f3ival. Ez nagyr\u00e9szt elegend\u0151 lesz b\u00e1rmilyen olyan b\u0151v\u00edtm\u00e9ny programoz\u00e1s\u00e1hoz, amely a Sweet Home 3D-ben el\u00e9rhet\u0151 otthoni adatokkal dolgozik.<br\/>A program t\u00f6bbi r\u00e9teg\u00e9nek megfelel\u0151 csomagok csak t\u00e1j\u00e9koztat\u00f3 jelleggel szerepelnek a Javadocban. Ne t\u00e1maszkodj az API-jukra, mivel az a j\u00f6v\u0151ben m\u00e9g v\u00e1ltozhat felfel\u00e9 kompatibilit\u00e1si garancia n\u00e9lk\u00fcl (egy\u00e9bk\u00e9nt sem fogsz hivatkoz\u00e1st tal\u00e1lni a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/swing\/package-summary.html\">com.eteks.sweethome3d.swing<\/a>, <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/j3d\/package-summary.html\">com.eteks.sweethome3d.j3d<\/a>, <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/io\/package-summary.html\">com.eteks.sweethome3d.io<\/a> vagy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/package-summary.html\">com.eteks.sweethome3d<\/a> csomagok oszt\u00e1lyaira az eml\u00edtett csomagokban).  <\/p>\n<h3 class=\"wp-block-heading\" id=\"modell-osztalyok-architekturaja\">Modell oszt\u00e1lyok architekt\u00far\u00e1ja<\/h3>\n<p>A Sweet Home 3D MVC (Model View Controller) architekt\u00far\u00e1n alapul, ez\u00e9rt elengedhetetlen meg\u00e9rteni, hogyan \u00e9p\u00fcl fel a modell r\u00e9tege. A 13. \u00e1bra (el\u00e9rhet\u0151 <a href=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/modelClassesDiagram.png\">PDF form\u00e1tumban<\/a> is) bemutatja a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/package-summary.html\">com.eteks.sweethome3d.model<\/a> csomag 1.5-\u00f6s verzi\u00f3j\u00e1ban el\u00e9rhet\u0151 szinte \u00f6sszes oszt\u00e1lyt \u00e9s interf\u00e9szt, amelyek ehhez a modell r\u00e9teghez tartoznak. <\/p>\n\n\n<figure class=\"aligncenter size-full uml-diagram\" id=\"uml-model-classes-diagram\">\n\t<img decoding=\"async\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/themes\/sh3d\/assets\/img\/uml\/model-classes-diagram.png\" alt=\"UML Diagram model-classes-diagram\"\n\t\tusemap=\"#model-classes-diagram\">\n\n\t<map name=\"model-classes-diagram\">\n    <area shape=\"rect\" coords=\"30,583,205,681\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/HomePieceOfFurniture.html\">\n    <area shape=\"rect\" coords=\"227,595,390,638\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/FurnitureCatalog.html\">\n    <area shape=\"rect\" coords=\"410,594,574,635\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TexturesCatalog.html\">\n    <area shape=\"rect\" coords=\"227,667,391,720\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/FurnitureCategory.html\">\n    <area shape=\"rect\" coords=\"410,666,574,719\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TexturesCategory.html\">\n    <area shape=\"rect\" coords=\"30,14,236,122\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Selectable.html\">\n    <area shape=\"rect\" coords=\"266,14,410,115\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/DimensionLine.html\">\n    <area shape=\"rect\" coords=\"441,15,574,76\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Label.html\">\n    <area shape=\"rect\" coords=\"441,91,574,106\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/ObserverCamera.html\">\n    <area shape=\"rect\" coords=\"30,141,205,334\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Room.html\">\n    <area shape=\"rect\" coords=\"265,142,387,192\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TextStyle.html\">\n    <area shape=\"rect\" coords=\"441,120,575,206\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Camera.html\">\n    <area shape=\"rect\" coords=\"226,243,460,379\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Home.html\">\n    <area shape=\"rect\" coords=\"483,331,611,381\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CollectionListener.html\">\n    <area shape=\"rect\" coords=\"483,397,611,449\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CollectionEvent.html\">\n    <area shape=\"rect\" coords=\"30,357,107,371\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/HomeTexture.html\">\n    <area shape=\"rect\" coords=\"30,393,204,565\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Wall.Property.html\">\n    <area shape=\"rect\" coords=\"226,409,429,452\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/HomeApplication.html\">\n    <area shape=\"rect\" coords=\"483,221,611,272\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/SelectionListener.html\">\n    <area shape=\"rect\" coords=\"483,286,611,315\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/SelectionEvent.html\">\n    <area shape=\"rect\" coords=\"227,477,429,566\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/UserPreferences.html\">\n    <area shape=\"rect\" coords=\"452,476,610,578\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/LengthUnit.html\">\n    <area shape=\"rect\" coords=\"30,702,205,858\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/PieceOfFurniture.html\">\n    <area shape=\"rect\" coords=\"227,750,391,793\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CatalogPieceOfFurniture.html\">\n    <area shape=\"rect\" coords=\"410,751,574,782\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CatalogTexture.html\">\n    <area shape=\"rect\" coords=\"227,808,391,848\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Content.html\">\n    <area shape=\"rect\" coords=\"410,808,574,881\" href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TextureImage.html\">\n<\/map>\n\t\t\t<figcaption class=\"wp-element-caption\">\n\t\t\t\t\t\t\t<em>Figure 13. UML diagram of com.eteks.sweethome3d.model package<\/em><br>\n\t\t\t\t\t\t\t\t\t\t<small><em>(click on a class to view its javadoc)<\/em><\/small>\n\t\t\t\t\t<\/figcaption>\n\t<\/figure>\n\n<p>A modell r\u00e9teg k\u00f6zponti oszt\u00e1lya a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/HomeApplication.html\">HomeApplication<\/a> oszt\u00e1ly (10), a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/SweetHome3D.html\">SweetHome3D<\/a> alkalmaz\u00e1s f\u0151 oszt\u00e1ly\u00e1nak absztrakt szuperoszt\u00e1lya. Ennek az oszt\u00e1lynak a p\u00e9ld\u00e1nya hozz\u00e1f\u00e9r\u00e9st biztos\u00edt az \u00e9ppen szerkesztett <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Home.html\">Home<\/a> p\u00e9ld\u00e1nyokhoz (7), valamint a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/UserPreferences.html\">UserPreferences<\/a> objektumhoz (11), amely t\u00e1rolja a haszn\u00e1lt <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/LengthUnit.html\">hosszm\u00e9rt\u00e9kegys\u00e9get<\/a> (12), a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/FurnitureCatalog.html\">b\u00fator katal\u00f3gust<\/a> (14) \u00e9s a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TexturesCatalog.html\">text\u00fara katal\u00f3gust<\/a> (15), amelyekb\u0151l a felhaszn\u00e1l\u00f3 <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CatalogPieceOfFurniture.html\">b\u00fatorokat<\/a> (17) \u00e9s <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CatalogTexture.html\">text\u00far\u00e1kat<\/a> (18) v\u00e1laszthat.<br\/>Egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Home.html\">Home<\/a> p\u00e9ld\u00e1ny (7) t\u00e1rolja az \u00f6sszes objektumot, amelyet a felhaszn\u00e1l\u00f3 az otthoni tervben l\u00e9trehozott: <\/p>\n\n<ul class=\"wp-block-list\">\n<li>az <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/HomePieceOfFurniture.html\">HomePieceOfFurniture<\/a> objektumok (13) list\u00e1ja, amelyek implement\u00e1lj\u00e1k a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/PieceOfFurniture.html\">PieceOfFurniture<\/a> interf\u00e9szt (16),<\/li>\n\n\n\n<li>a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Wall.html\">Wall<\/a> objektumok (9) gy\u0171jtem\u00e9nye,<\/li>\n\n\n\n<li>a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Wall.html\">Room<\/a> objektumok (5) list\u00e1ja,<\/li>\n\n\n\n<li>a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/DimensionLine.html\">DimensionLine<\/a> objektumok (2) gy\u0171jtem\u00e9nye,<\/li>\n\n\n\n<li>a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Label.html\">Label<\/a> objektumok (3) gy\u0171jtem\u00e9nye.<\/li>\n<\/ul>\n\n<p>Ezek az objektumok implement\u00e1lj\u00e1k a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Selectable.html\">Selectable<\/a> interf\u00e9szt (1), valamint az <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/ObserverCamera.html\">ObserverCamera<\/a> objektumot (4), amely a kamera helyzet\u00e9t t\u00e1rolja a <em>Virtu\u00e1lis l\u00e1togat\u00f3<\/em> m\u00f3dban. A modell objektumok \u00e1ltal kezelt \u00f6sszes k\u00fcls\u0151 inform\u00e1ci\u00f3, mint p\u00e9ld\u00e1ul egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/PieceOfFurniture.html\">b\u00fator<\/a> (16) ikonja \u00e9s 3D modellje, vagy egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/TextureImage.html\">text\u00fara<\/a> (20) k\u00e9pe, a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/Content.html\">Content<\/a> interf\u00e9szen (19) kereszt\u00fcl \u00e9rhet\u0151 el, amelyet az <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/tools\/URLContent.html\">URLContent<\/a> oszt\u00e1ly \u00e9s a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/tools\/package-summary.html\">com.eteks.sweethome3d.tools<\/a> csomag m\u00e1s oszt\u00e1lyai implement\u00e1lnak. <\/p>\n\n<p>Ez az UML diagram seg\u00edthet meg\u00e9rteni, mely oszt\u00e1lyok \u00e9rhet\u0151k el a Sweet Home 3D modellben, \u00e9s hogyan f\u00e9rhetsz hozz\u00e1juk, de val\u00f3sz\u00edn\u0171leg \u00e9szreveszed majd, hogy nincsenek benne konstruktorok \u00e9s mut\u00e1torok (vagy setterek, ha \u00fagy tetszik) eml\u00edtve. Ez csak helyhi\u00e1ny miatt van, de gond n\u00e9lk\u00fcl haszn\u00e1lhatod \u0151ket egy b\u0151v\u00edtm\u00e9ny oszt\u00e1lyban. Vedd figyelembe azt is, hogy a modell egy megl\u00e9v\u0151 objektum\u00e1nak b\u00e1rmilyen m\u00f3dos\u00edt\u00e1sa \u00e9rtes\u00edt\u00e9sre ker\u00fcl a megjelen\u00edtett komponensek fel\u00e9, ak\u00e1r <a href=\"https:\/\/java.sun.com\/j2se\/1.5.0\/docs\/api\/java\/beans\/PropertyChangeEvent.html\" target=\"_blank\" rel=\"noopener\">PropertyChangeEvent<\/a>-ekkel, <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/CollectionEvent.html\">CollectionEvent<\/a>-ekkel (8) vagy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/model\/SelectionEvent.html\">SelectionEvent<\/a>-ekkel (6), \u00edgy minden v\u00e1ltoz\u00e1s azonnal megjelenik a k\u00e9perny\u0151n.  <\/p>\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-64989fb1 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"21\" height=\"21\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/09\/warning-1.gif\" alt=\"\" class=\"wp-image-4679\" style=\"width:21px\"\/><\/figure>\n\n\n\n<p>A Sweet Home 3D modell teljes\u00edtm\u00e9nybeli okokb\u00f3l <strong>nem<\/strong> sz\u00e1lbiztos. A modellhez tartoz\u00f3 objektumok minden <strong>m\u00f3dos\u00edt\u00e1s\u00e1t<\/strong> az Event Dispatch Thread-ben kell elv\u00e9gezni. <\/p>\n<\/div>\n<h3 class=\"wp-block-heading\" id=\"bovitmeny-osztalyok-architekturaja\">B\u0151v\u00edtm\u00e9ny oszt\u00e1lyok architekt\u00far\u00e1ja<\/h3>\n<p>A b\u0151v\u00edtm\u00e9ny oszt\u00e1lyok architekt\u00far\u00e1ja sokkal egyszer\u0171bben \u00e9rthet\u0151, mint a modell r\u00e9teg\u00e9. A <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/package-summary.html\">com.eteks.sweethome3d.plugin<\/a> csomag mind\u00f6ssze h\u00e1rom oszt\u00e1lyt tartalmaz, amelyek k\u00f6z\u00fcl csak a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html\">Plugin<\/a> \u00e9s <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html\">PluginAction<\/a> oszt\u00e1lyokat kellene haszn\u00e1lnod, ahogy a 14. \u00e1bra is mutatja (el\u00e9rhet\u0151 <a href=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/uploads\/2025\/10\/pluginClassesDiagram.png\">PDF form\u00e1tumban<\/a> is). <\/p>\n\n\n<figure class=\"aligncenter size-full uml-diagram\" id=\"uml-plugin-classes-diagram\">\n\t<img decoding=\"async\" src=\"https:\/\/wp-test-1.sweethome3d.eu\/wp-content\/themes\/sh3d\/assets\/img\/uml\/plugin-classes-diagram.png\" alt=\"UML Diagram plugin-classes-diagram\"\n\t\tusemap=\"#plugin-classes-diagram\">\n\n\t<map name=\"plugin-classes-diagram\">\n    <area shape=\"rect\" coords=\"10,9,256,92\" href=\"javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginManager.html\">\n    <area shape=\"rect\" coords=\"11,131,257,288\" href=\"javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html\">\n    <area shape=\"rect\" coords=\"453,8,574,118\" href=\"javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.Property.html\">\n    <area shape=\"rect\" coords=\"282,133,574,289\" href=\"javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html\">\n<\/map>\n\t\t\t<figcaption class=\"wp-element-caption\">\n\t\t\t\t\t\t\t<em>Figure 14. UML diagram of com.eteks.sweethome3d.plugin package<\/em><br>\n\t\t\t\t\t\t\t\t\t\t<small><em>(click on a class to view its javadoc)<\/em><\/small>\n\t\t\t\t\t<\/figcaption>\n\t<\/figure>\n\n<p>Az alkalmaz\u00e1s ind\u00edt\u00e1sakor l\u00e9trej\u00f6n egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginManager.html\">PluginManager<\/a> p\u00e9ld\u00e1ny (1), amely megkeresi a felhaszn\u00e1l\u00f3 <a href=\"#creating-the-plugin-jar\">b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1ban<\/a> telep\u00edtett b\u0151v\u00edtm\u00e9nyeket. Valah\u00e1nyszor \u00faj otthont szerkesztesz, ez a kezel\u0151 p\u00e9ld\u00e1nyos\u00edt \u00e9s konfigur\u00e1l egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html\">Plugin<\/a> objektumot (3) minden ind\u00edt\u00e1skor tal\u00e1lt b\u0151v\u00edtm\u00e9nyhez. Ezut\u00e1n megh\u00edvja a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html#getActions()\">getActions<\/a> met\u00f3dust, hogy lek\u00e9rje az \u00f6sszes <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html\">m\u0171veletet<\/a> (4), amelyek men\u00fcpontk\u00e9nt \u00e9s\/vagy eszk\u00f6zt\u00e1r gombk\u00e9nt ker\u00fclnek hozz\u00e1ad\u00e1sra az otthoni ablakban. Minden m\u0171velet egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html\">PluginAction<\/a> p\u00e9ld\u00e1ny, amely az <a href=\"https:\/\/java.sun.com\/j2se\/1.5.0\/docs\/api\/javax\/swing\/Action.html\" target=\"_blank\" rel=\"noopener\">Action<\/a> oszt\u00e1lyhoz hasonl\u00f3an rendelkezik az <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html#execute()\">execute<\/a> met\u00f3dus\u00e1val \u00e9s m\u00f3dos\u00edthat\u00f3 <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.Property.html\">tulajdons\u00e1gaival<\/a> (2).   <\/p>\n\n<p>Vedd figyelembe, hogy a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html\">Plugin<\/a> oszt\u00e1ly hozz\u00e1f\u00e9r\u00e9st biztos\u00edt egy <a href=\"https:\/\/java.sun.com\/j2se\/1.5.0\/docs\/api\/javax\/swing\/undo\/UndoableEditSupport.html\" target=\"_blank\" rel=\"noopener\">UndoableEditSupport<\/a> p\u00e9ld\u00e1nyhoz a <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/Plugin.html#getUndoableEditSupport()\">getUndoableEditSupport<\/a> met\u00f3dus\u00e1n kereszt\u00fcl. Amint m\u00f3dos\u00edtasz egy otthont vagy annak objektumait (b\u00fatorok, falak&#8230;) egy <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html\">PluginAction<\/a> p\u00e9ld\u00e1ny execute met\u00f3dus\u00e1ban, egy <a href=\"https:\/\/java.sun.com\/j2se\/1.5.0\/docs\/api\/javax\/swing\/undo\/UndoableEdit.html\" target=\"_blank\" rel=\"noopener\">UndoableEdit<\/a> objektumot is el kell k\u00fcldened a getUndoableEditSupport met\u00f3dus \u00e1ltal visszaadott visszavonhat\u00f3 szerkeszt\u00e9si t\u00e1mogat\u00e1snak, k\u00fcl\u00f6nben a felhaszn\u00e1l\u00f3k nem tudj\u00e1k majd helyesen visszavonni\/\u00fajra megtenni az \u00e1ltalad v\u00e9grehajtott v\u00e1ltoztat\u00e1sokat. <\/p>\n<h3 class=\"wp-block-heading\" id=\"lokalizacio\">Lokaliz\u00e1ci\u00f3<\/h3>\n<p>Ha b\u0151v\u00edtm\u00e9nyt szeretn\u00e9l fejleszteni a Sweet Home 3D felhaszn\u00e1l\u00f3i k\u00f6z\u00f6ss\u00e9g sz\u00e1m\u00e1ra, pr\u00f3b\u00e1ld meg lokaliz\u00e1lni a megjelen\u00edtett sz\u00f6vegeket, ak\u00e1r a m\u0171veletek nev\u00e9ben \u00e9s men\u00fcj\u00e9ben, ak\u00e1r az \u00e1ltalad l\u00e9trehozott p\u00e1rbesz\u00e9dpanelekben (vagy legal\u00e1bb k\u00e9sz\u00edtsd el\u0151 a lokaliz\u00e1ci\u00f3j\u00e1t). A <a href=\"\/javadoc\/com\/eteks\/sweethome3d\/plugin\/PluginAction.html#PluginAction(java.lang.String,%20java.lang.String,%20java.lang.ClassLoader)\">PluginAction<\/a> oszt\u00e1ly k\u00e9t konstruktora seg\u00edt majd a m\u0171veletek tulajdons\u00e1gainak ford\u00edt\u00e1s\u00e1t .properties f\u00e1jlokkal megszervezni, \u00e9s ha m\u00e1s sz\u00f6vegeket is le kell ford\u00edtanod a b\u0151v\u00edtm\u00e9nyedben (mint p\u00e9ld\u00e1ul a <a href=\"#testing-the-plugin\">tesztelt b\u0151v\u00edtm\u00e9ny<\/a> \u00e1ltal mutatott p\u00e1rbesz\u00e9dpanelben), haszn\u00e1ld \u00fajra ezeket a .properties f\u00e1jlokat a <a href=\"https:\/\/java.sun.com\/j2se\/1.5.0\/docs\/api\/java\/util\/ResourceBundle.html\" target=\"_blank\" rel=\"noopener\">ResourceBundle<\/a> Java oszt\u00e1llyal.<br\/>Ha ink\u00e1bb korl\u00e1tozn\u00e1d a .properties f\u00e1jlok sz\u00e1m\u00e1t, ak\u00e1r az akci\u00f3tulajdons\u00e1gok \u00e9s egy\u00e9b sz\u00f6vegek \u00e9rt\u00e9keit is be\u00edrhatod a b\u0151v\u00edtm\u00e9nyed ApplicationPlugin.properties <a href=\"#creating-the-plugin-description-file\">le\u00edr\u00f3 f\u00e1jlj\u00e1ba<\/a>. <\/p>\n\n<p>Ha szeretn\u00e9l egy p\u00e9ld\u00e1t, amely ezt az architekt\u00far\u00e1t haszn\u00e1lja, t\u00f6ltsd le az <em>Export to SH3F<\/em> b\u0151v\u00edtm\u00e9nyt, amely el\u00e9rhet\u0151 a <a href=\"\/storage\/plugins\/ExportToSH3F-1.0.sh3p\">https:\/\/www.sweethome3d.com\/plugins\/ExportToSH3F-1.0.sh3p<\/a> c\u00edmen, \u00e9s csomagold ki (ez a b\u0151v\u00edtm\u00e9nyf\u00e1jl tartalmazza a b\u0151v\u00edtm\u00e9ny forr\u00e1sk\u00f3dj\u00e1t is).<br\/>Ahogy a <a href=\"https:\/\/sourceforge.net\/forum\/message.php?msg_id=5837358\" class=\"broken_link\" target=\"_blank\" rel=\"noopener\">S\u00fag\u00f3 f\u00f3rumban<\/a> is le van \u00edrva, ez a b\u0151v\u00edtm\u00e9ny l\u00e9trehoz egy SH3F f\u00e1jlt, amely tartalmazza az \u00f6sszes b\u00fatort, amit import\u00e1lt\u00e1l a Sweet Home 3D b\u00fatorkatal\u00f3gus\u00e1ba.<\/p>\n<h3 class=\"wp-block-heading\" id=\"bovitmenyek-bekuldese\">B\u0151v\u00edtm\u00e9nyek bek\u00fcld\u00e9se<\/h3>\n<p>A programozott b\u0151v\u00edtm\u00e9nyeidet k\u00f6zz\u00e9teheted a <a href=\"https:\/\/sourceforge.net\/p\/sweethome3d\/plug-ins\/\" target=\"_blank\" rel=\"noopener\">B\u0151v\u00edtm\u00e9nyek bek\u00fcld\u00e9se<\/a> nyomk\u00f6vet\u0151 rendszerben, hogy megoszd \u0151ket a Sweet Home 3D felhaszn\u00e1l\u00f3i k\u00f6z\u00f6ss\u00e9g\u00e9vel.<br\/>Sz\u00e1mos funkci\u00f3val b\u0151v\u00edthet\u0151 a Sweet Home 3D a b\u0151v\u00edtm\u00e9nyeknek k\u00f6sz\u00f6nhet\u0151en, az import\u00e1l\u00f3kt\u00f3l az export\u00e1l\u00f3kig, de olyan b\u0151v\u00edtm\u00e9nyekkel is, amelyek k\u00e9pesek m\u00f3dos\u00edtani egy otthon adatait, mint p\u00e9ld\u00e1ul a Michel Mbem \u00e9s m\u00e1sok \u00e1ltal fejlesztett <a href=\"https:\/\/sourceforge.net\/p\/sweethome3d\/plug-ins\/1\/\" target=\"_blank\" rel=\"noopener\">Home Rotator Plug-in<\/a>, amelyek Hans Dirkse \u00e1ltal \u00edrt <a href=\"\/storage\/pluginsUserGuide.pdf\">B\u0151v\u00edtm\u00e9nyek \u00e9s kiterjeszt\u00e9sek oktat\u00f3anyag\u00e1ban<\/a> (PDF) \u00e9s a <a href=\"https:\/\/wp-test-1.sweethome3d.eu\/hu\/bovitmenyek-es-eszkozok\/\" data-type=\"page\" data-id=\"437\">B\u0151v\u00edtm\u00e9nyek \u00e9s eszk\u00f6z\u00f6k<\/a> oldalon vannak felsorolva.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bevezet\u00e9s Az 1.5-\u00f6s verzi\u00f3t\u00f3l kezdve \u00faj funkci\u00f3kat adhatsz hozz\u00e1 a Sweet Home 3D-hez a b\u0151v\u00edtm\u00e9nyek mapp\u00e1j\u00e1ba helyezett b\u0151v\u00edtm\u00e9nyf\u00e1jlokkal. Ez lehet\u0151v\u00e9 teszi a Java programoz\u00f3k sz\u00e1m\u00e1ra, hogy \u00faj funkci\u00f3kat fejlesszenek \u00e9s terjesszenek a Sweet Home 3D-hez an\u00e9lk\u00fcl, hogy m\u00f3dos\u00edtan\u00e1k az aktu\u00e1lis verzi\u00f3 forr\u00e1sf\u00e1jljait (ami j\u00f3 a felfel\u00e9 kompatibilit\u00e1s szempontj\u00e1b\u00f3l), \u00e9s an\u00e9lk\u00fcl, hogy a program teljes verzi\u00f3j\u00e1t [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":10450,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-10486","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/pages\/10486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/comments?post=10486"}],"version-history":[{"count":2,"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/pages\/10486\/revisions"}],"predecessor-version":[{"id":10742,"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/pages\/10486\/revisions\/10742"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/media\/10450"}],"wp:attachment":[{"href":"https:\/\/wp-test-1.sweethome3d.eu\/hu\/wp-json\/wp\/v2\/media?parent=10486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}