- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
Új hozzászólás Aktív témák
-
Zsoxx
senior tag
Ezt tanulmányozva talán kicsit közelebb kerülsz a válaszhoz.
Fent van a megoldása is egyébként. -
Drizzt
nagyúr
Ebből sajnos úgy tűnik, hogy éppen nem érted az OOP lényegét, de majd idővel az is eljön.
Én az öröklésből elsőre a polimorfizmust emelném ki. Van például egy Alakzat osztályod. Ebben van egy teruletSzamitas metódus. Van két Alakzatod, Kor és Negyzet. Kor és Negyzet nyilván teljesen máshogy számítja ki a területét, más belső tényezők alapján. De mindkettőben közös, hogy rendelkeznek területtel, és neked ha van egy raklapnyi Alakzatod, egyszerűbb dolgod van, ha mindegyik objektum megmondja magáról, hogy az ő területe mennyi. Persze itt is megcsinálhatod, hogy valamilyen típus változóban elrakod az Alakzat típusát, és ez alapján döntöd el a területszámító függvényben, hogy mit kell tenni. De ez hosszú távon teljesen fenntarthatatlan lesz. Ugyanis ha hozzáadsz egy új Alakzatot, 99%, hogy nem fogod megkeresni az összes if-et, ami Alakzatokat kezel, s el fog romlani a programod. Míg ha a teruletSzamitas abstract metódus, vagy interface-ben van megadva, akkor amint létrehozol egy újfajta Alakzatot, kötelező lesz megadnod a teruletSzamitas fuggveny implementaciojat. Másik probléma: hogyan kezeled azt, hogy egy Kor átmérővel rendelkezik, de egy Negyzet pedig oldal hosszúsággal? Mondhatod, hogy van egy változód, ami vagy az egyik, vagy a másik dolgot reprezentálja. Viszont ha bevezetsz egy téglalapot, akkor már nem lesz elég egy oldal, kettő kell. Ilyenkor mit csinálsz? Ha az Alakzatokban csak az a közös, hogy van számítható területük, akkor nem kell ezzel foglalkoznod. Minden osztályod csak annyit fog magából megmutatni a külvilágnak, ami feltétlenül szükséges.
-
bandi0000
nagyúr
Sztem rosszul közelíted meg a dolgot képzeld el így
Van egy osztályod ami tárolja az autók fő tulajdonságait mint pl Le, fogyasztás stb, amit minden autóra el lehet sütni, ebből örökölnek a konkrét típusok, amiknek meg lesznek a fő osztály adattagjai, mint a Le meg a fogyasztás, de ehhez hozzá rakhat még mást, ami esetleg csak rá vonatkozik
Az egésznek az a lényege, hogy ha hasonló osztályaid vannak, akkor nem mindegyikben hozod létre ugyan azokat a változókat, hanem csinálsz egy ős osztályt, ami tartalmazza ezeket a közös tagokat és a többi csak örökli
+ ugyan ez igaz a függvényeire is, pl ha másodfokú egyenletet szeretnél kiszámolni, akkor ha már van egy osztályod ami össze ad két számot, akkor ezt se kell megírni megint csak használni
Nyilván ezek móricka példák, és semmit értelmét nem látod ezeknek, de egy nagy alkalmazásban majd igen jó jönnek ezek
-
skoda12
aktív tag
Az action és event listenereidet a framework triggereli, így azok az event dispatcher threaden fognak futni, tehát lehet belőlük UI elemeket módosítani. A többi osztálynál figyelni kell, hogy ha UI elemeket módosítasz, akkor a SwingUtilities valamelyik invoke...() metódusával legyenek futtatva a megfelelő kódrészek (ezek végül így az event dispatcher threaden fognak futni). Ezzel le vannak fedve a UI-os részek, de neked kell tudni, hogy használsz-e még máshol threadeket és azok helyesen osztják-e meg egymás között az adatokat. Mondjuk valószínűleg az a rész is érdekes, ahol a vonalkódolvasótól átveszed az adatot és kipakolod a UI-ra.
Igazából látni kéne az egész kódot, hogy meg lehessen állapítani hol van probléma az adat megosztással, de egy teljes projektet nincs időm átnézni és kidebuggolni. Érdemes lenne a multithreadingnek és memory consistency erroroknak utánaolvasnod.
-
orc88
őstag
Ismét ezzel táblázatos gyakorló projektemmel van gond, 2 napja próbálkozok mindennel IS, többször újraírtam a kérdéses részt, de nem akarja az igazat
Van 1 textfield, ahova vonalkód olvasóval lehet bevinni az adatokat, a vonalkód olvasó az olvasás után ENTER-t "üt".
A kód szépen megtalálja, végrehajtja a megfelelő utasításokat a saját gépemen amin írom (i7 3.7Ghz + 12GB ram). A probléma akkor következik, mikor egy lassú pentiumos laptopon futtatom, hibajelenség:
- 5x olvastam le ugyanazt a kódot egymás után, és össze vissza dobál ✔-t és ✖-et ovlasás után.
- sokszor elkezd ugrálni a táblázatban még azelőtt mielőtt érkezne az Enter... (nincs más key event hozzárendelve)Mivel teljesen random viselkedik ugyanazon vonalkód esetében is már csak arra tudtam gondolni, hogy "túl" gyors neki az olvasás, vagy nem elég hatékony a kódom, más logikus magyarázatot nem találtam..
De hátha ti jobban átlátjátok
Az Enter után keresem ki, hogy melyik áruról van szó:
private void text_searchKeyReleased(java.awt.event.KeyEvent evt) {
if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
indextalalat = -2;
zText.setLength(0); //Stringbuildert használok, hogy megmaradjon az utolsó érték a field ürítése után is.
zText.append(text_search.getText());
for (int i = 0; i <= tabla.getRowCount()-1; i++) {
if (tabla.getValueAt(i, 2).toString().replaceAll("\\s+","").equals(text_search.getText())) {
indextalalat = i;
break;
}
}
if (indextalalat != -2) {
text_search.setText(null);
talalatLabel0.setText("✔");
tabla.setRowSelectionInterval(indextalalat, indextalalat);
tabla.scrollRectToVisible(new Rectangle(tabla2.getCellRect(indextalalat, 0, true)));
setTexts();
} else {
text_search.setText(null);
talalatLabel0.setText("✖");
tabla.removeColumnSelectionInterval(0, tabla.getColumnCount()-1);
}
}
} -
Drizzt
nagyúr
Én ugyan nem értek az AWT-hez, de az hogyan találja ki up, vagy down arrow lenyomásra, hogy fel, vagy le kell állítania az aktuális sort?
A handler amit írtál, mindenképpen beállítja a textet a kijelölt sor alapján. De mi állítja be a kijelölt sort? Van valami az AWT-ben ami automatikusan állítja a sor billentyű lenyomásra? Ebben az esetben valamilyen olyan listenert kellene meghívni ami biztosan a selection megváltozása után lesz meghívva. -
M_AND_Ms
veterán
Ha javaból, vagy mysqlből eléred, akkor elsőnek nyers adatként áthúzod a dbf tartalmát az adatbázisodba, aztán ott már könnyedén tudsz belőle dolgozni.
Anno 10 éve én is így dolgoztam be dbf-t, de az eszközre már nem emlékszem (azt hiszem, mivel Ms-sql volt az adatbázis, annak a pont ilyen feladatokra való Dts eszközével dolgoztam) -
RexpecT
addikt
Ahogy nézem ezt az SDK-t kell leszedni hozzá, a windowsos verzióban benne van az általad említett driver is.
Itt a developer guide hozzá. -
RexpecT
addikt
Felülírod az objektum értékeit ebben a két sorban:
temptranz.id = 0;
temptranz.term.clear();Ezután se lesz még jó, mert egyszer hoztad csak létre a temptranz objektumot.
-
disy68
aktív tag
Ennyiből ugyan nem látszik mi a hiba, de szerintem az elérési utakkal lehet gond.
Csináltam egy kis minta projectet (maven project), két "kép cserélővel", az egyik a resource mappából szedi a képeket, a másik pedig külső könyvtárból.
Ha nincs jól megadva az elérési út a jelenség az általad is leírttal egyezik. Annyit még változtattam, hogy egységesen kezeljem a két változatot, hogy az ImageIcon-t java.net.URL paraméterrel példányosítom.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Autóápolás, karbantartás, fényezés
- Ingatlanos topic!
- Luck Dragon: Asszociációs játék. :)
- Banggood
- Kerékpárosok, bringások ide!
- Suzuki topik
- További aktív témák...
- HP Elitebook 840 G3 laptop (15,6FHD/I5-G8/8GB/256SSD/Magyar/Win11)
- AMD Ryzen 5 5500 - GTX 1080Ti 11Gb - MSI B450 Max
- HP Zbook 15 G3 laptop (15,6FHD/I7-G6/16GB/256SSD/AMD2GB/MagyarVilágítós/Win11)
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! HP ProBook 450 G7 - i5-10GEN I 16GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gar
- 10% -tól elvihető.Országosan a legjobb BANKMENTES részletfizetési konstrukció! ACER PREDATOR HELIOS
- BESZÁMÍTÁS! MSI Z77 MPOWER Z77 chipset alaplap garanciával hibátlan működéssel
- iKing.Hu - Apple iPhone 13 Pro Max - Graphite - Használt, újszerű
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest