- Magisk
- One mobilszolgáltatások
- iPhone topik
- Íme az új Android Auto!
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy Fit 3 - keveset, de jól
- Honor Magic6 Pro - kör közepén számok
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
Új hozzászólás Aktív témák
-
orc88
őstag
Sziasztok.
Egy Maven projectet próbálok készíteni, ahol a program eredményeit egy json fileba írom és onnan olvasom vissza a korábbiakat.
Ha az
\src\main\resources\results\
mappában helyezem el a results.json-t akkor Mavennel futtatva a programot tökéletesen írja és olvassa az adatokat, bemásolja a\target\classes\results\
mappába.
A probléma az, hogy egy futtatható .jar-t is készítek ez viszont nem éri el így a filet.Egy megoldás, ha nem a resources-be rakom, viszont ekkor mindkét esetben közvetlen a gyökérbe rakja a jsont, ez így annyira nem tetszik.
Hogyan tudnám pl. simán egy results mappába rakni úgy, hogy mindkét esetben hozzáférjen a program?
Remélem érthető a problémám
-
orc88
őstag
Köszi mindkettőtöknek!
Interfészt és absztrakt osztályokat használtam már pár feladat során, pl. ezt az alakzatos példát is csináltam már absztrakt osztály kiterjesztésével.
A kérdésem inkább a sima osztályokra vonatkozott, hogy azok esetében mikor érdemes tovább bővíteni.
-
orc88
őstag
Sziasztok!
Valószínűleg elég triviális lesz a kérdésem
2 éve programozok, idén érettségiztem emelt informatikából (Java-ban), alapvetően értem az OOP lényegét, tisztában vagyok az alapokkal, viszont az osztályok közötti öröklődés hasznát nem igazán látom át.
Egy egyszerű példával:
Adott egycar
osztály, benne egyString marka
mező. Ennek a mezőnek adhatok akármilyen értéket. (Subaru, Citroen, Mazda...) Később ezen osztály objektumait pl. hozzáadhatom egy ArrayListhez amiben egyif(marka=="Mazda")
feltétellel rögtön tudok kezdeni valamit.
Miért lenne jobb ha acar
osztályt terjeszteném ki több al-osztályra?Elképzelhető, hogy nagyon rossz a példám mert nem látom át az egész lényegét, gyakorlati alkalmazását.
Valaki fel tudna világosítani, esetleg kész gyakorlati példát mutatni? -
orc88
őstag
válasz
MasterMark #10347 üzenetére
Én ezt használom pl:
String url = System.getProperty("user.dir") + "/database/adatok.db";
Így mindig az éppen használatos könyvtárból dolgozik.
-
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);
}
}
} -
orc88
őstag
Sziasztok!
Van egy metódus, ami a táblázatban található adatokat kiírja Textfieldekbe. Ezt a metódust hozzá adtam a tábla kattintásos eseményéhez, amikor kattint valamelyik elemre a táblázatban szépen kiírja a megfelelő fieldbe az adatokat.
Gondoltam megcsinálom ugyanezt VK_UP és VK_DOWN key eventekre is, így nyilakkal történő lépkedés esetén frissíti a fieldek tartalmát.
A probléma a következő:
1 lépéssel le van maradva minden gombnyomásnál, mindig az előző gombnyomás után kijelölt sor adatait szedi ki a táblából
Mi lehet a gubanc?A
setText()
metódus:public void setTexts() {
DefaultTableModel model = (DefaultTableModel) tabla.getModel();
text_id.setText(model.getValueAt(tabla.getSelectedRow(), 0).toString());
text_nev.setText(model.getValueAt(tabla.getSelectedRow(), 1).toString());
text_cikkszam.setText(model.getValueAt(tabla.getSelectedRow(), 2).toString());
text_elar.setText(model.getValueAt(tabla.getSelectedRow(), 7).toString());
text_datum0.setText(model.getValueAt(tabla.getSelectedRow(), 9).toString());
}És ahol meghívom:
private void tablaKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_UP || evt.getKeyCode() ==
java.awt.event.KeyEvent.VK_DOWN) {
setTexts();
}
} -
orc88
őstag
Van egy programom, amivel adatbázist kezelek SQLite-tal. Ezt azzal szeretném kiegészíteni, hogy egy másik adatbázis adatait hozzáfűzöm. A probléma az, hogy a másik adatbázis egy régi .dbf (dBase III / IV). Java 8-tól kezdve ahogy olvastam ezeket nem nagyon lehet kezelni JDBC-vel. A különféle libek amiket találtam és kezelik a .dbf-t mind fizetősek, amik ingyenesek azokkal viszont nem tudok SQL lekérdezést használni. Mire lenne érdemes alakítani ezeket a dbf fileokat, hogy utána mindent egy helyi adatbázisban tároljak és egyszerűen tudjak SQL lekérdezéseket végezni?
Ha szükséges az SQLite-ot is cserélhetem másra ha van javaslat.
-
orc88
őstag
válasz
Aethelstone #10251 üzenetére
És tényleg működik nélküle is
Hétvégén foglalkoztam vele, csak mivel napi használatban van az olvasó így nem tudták ideadni, de most kipróbáltam és príma.
Köszi!
RexpecT: Igen ezeket megtaláltam, szívtam is vele pár órát mert már gyakorlatilag a linkek fele nem élt, de így igazából már nem is nagyon van rá szükségem, mindenesetre köszönöm!
-
orc88
őstag
Sziasztok!
Adott egy vonalkód olvasó. Hogyan tudnám ennek az inputjait kezelni egy java programmal? Az oldalukon a JavaPOS-t említik de ahhoz alig találok valamit a neten
Valaki tudna segíteni, hogy merre induljak el? -
orc88
őstag
válasz
Aethelstone #10226 üzenetére
Természetesen
(ezért is akartam először privátban segítséget kérni valakitől, sejtettem, hogy nem lesz egyszerű menet) -
orc88
őstag
válasz
RexpecT #10222 üzenetére
Google Drive-ba felraktam kompletten ami kell a feladathoz, és ahol elakadtam.
Pastebin a fő osztályról.
Ami még kellhet hozzá a 'tranzakció' osztály (tranzak.java):public class tranzak {
public int id;
public ArrayList<String> term;
public tranzak(ArrayList<String> _term) {
this.term = _term;
}
public tranzak(int _id, ArrayList<String> _term) {
this.id = _id;
this.term = _term;
}
public void getTerm() {
for (int i = 0; i <= this.term.size()-1; i++) {
System.out.println(this.term.get(i));
}
}
public void addTerm(String _ujterm) {
this.term.add(_ujterm);
}
}Amire rájöttem időközben:
Main.class-ban van egy ciklus ami a problémámat okozza:int index = 1;
ArrayList<String> temp = new ArrayList<String>();
tranzak temptranz = new tranzak(0, temp);
for (int i = 0; i <= beolv.size()-1; i++) {
if (beolv.get(i).equals("F")) {
temptranz.id = index;
System.out.println(temptranz.id);
System.out.println(temptranz.term);
//Idáig minden OK, szépen megkapja az (átmeneti) tranzakció az azonosítóját és a terméklistát
trs.add(temptranz);
//Beállítom a változókat a következő tranzakcióhoz
ind++;
temptranz.id = 0;
temptranz.term.clear();
} else {
temptranz.addTerm(beolv.get(i));
}
}
//Viszont amikor kiiratnám a végleges tranzakciókat tartalmazó listát már rossz ID-t és üres terméklistát kapok vissza
for (int i = 0; i <= trs.size()-1; i++) {
System.out.println(trs.get(i).id);
System.out.println(trs.get(i).term);
}Itt a temptranz-ba gyűjtögetem az információkat mind addig amíg "F"-et tartalmazó sort nem talál a ciklus. Ha "F"-hez ér, akkor az eddig összegyűlt adatokkal az átmeneti temptranz objektumot egy az egyben hozzáadnám az ArrayListhez ami tranzakcio objektumokat tartalmaz. A probléma ott jön elő, hogy a
trs.add(temptranz);
sor után kinullázom az ideglenes Stringeket tartalmazó Listát, és valamiért (ezt lehet tudnom kéne) hiába adtam már hozzá az objektumot, kitörli belőle a String lista tartalmát és üresen adja át
Szóval a probléma okára nagyjából rájöttem, közben meg is oldottam Listák nélkül a feladatot, de kíváncsi lennék, hogy mi okozza pontosan, és hogyan kerüljem el a jövőben az ebből adódó hibákat.
Ui.: a sok próbálkozás és ctrl+c / ctrl+v után lehet maradt benne 1-2 fölösleges sor és csúnyán nézhet ki, utólag is bocsi
-
orc88
őstag
Sziasztok!
Egy érettségi feladattal van problémám. Eddig mindegyik feladatot megoldottam valamilyen úton-módon, viszont most valamiért nem akar működni az ArrayList úgy ahogy én szeretném
Valakinek elküldhetném privátban? (Pár sor lenne az egész, valószínűleg valami bagatell hibát vétettem, viszont több fájlban vannak a dolgok, nem akarom teleszemetelni a topikot
)
-
orc88
őstag
Sziasztok!
Jövőre érettségizek informatikából, a Java nyelvet választottam. 3 hónapig Pascaloztunk az alapok miatt, majd ~4 hónap Java. Alap feladatok megoldása elég jól ment, a logikáját is értem a dolgoknak.
Gondolkozok egy Java könyv beszerzésén kis gyakorlásért. A fentebb linkelt könyvet javasoljátok, vagy inkább az Agyhullámot? Segítene nekem az érettségi szempontjából?
Előre is köszi!
-
orc88
őstag
Üdv!
Nem tudom megoldható-e, de valami olyasmire lenne szükségem, hogy egy byte/integer váltózó értéke mindig 0 és 9 között maradjon műveletek után. Pl.: value %= 10 megakadályozza, hogy 9 fölé menjen az értéke, value++ esetén 0-ra ugrik az értéke.
Na nekem ennek az ellenkezőjére is szükségem lenne, (ha létezik ilyen) hogy (ha value = 0) value-- után 9 értéket vegyen fel.(Egy olyan programról van szó ami képeket mutat végig 0-tól 9-ig sorszámozva, egy előre és egy vissza gombbal lehet léptetni őket, az előre működik)
Kezdő vagyok, nem tudom hogy lehet a legegyszerűbben megoldani ilyen feladatot.
-
orc88
őstag
Üdv!
Egy aprócska problémám akadt JFrame/JPanel-el kapcsolatban.
Adott egy JFrame, egy JPanellel. A program futása során ha szükséges hozzá ad képet tartalmazó JLabeleket a panelhez.
A probléma csak az, hogy ezek a labelek csak akkor jelennek meg ténylegesen, ha az ablakot akár egy pixellel is nagyítom vagy kicsinyítem.
Frame: Null layout
Panel: az összeset kipróbáltam, egyikkel se jó, de igazából csak a flow layout jo nekem, ami szépen egymás után pakolja a képeket (labeleket)Valami tipp?
-
orc88
őstag
Üdv!
Javaban egy akasztófa játékot kell csinálnom.
A program nagy része kész, már csak a kép megjelenítése hiányzik, amit én előre elkészített .jpg képekkel oldanék meg, (6 db van) amit a hibázások száma alapján cserélgetek.
Csináltam egy metódust, ami minden karakter megnyomás után lefut, és beállítja a képet a hibák alapján, így néz ki:public Icon faimg(int hiba) {
ImageIcon kep = new ImageIcon();
String elut = " ";
switch (hiba) {
case 0: kep = new ImageIcon("G:\\Netbeans\\Java\\akasztofa\\img\\af_0.jpg"); break;
case 1: kep = new ImageIcon("G:\\Netbeans\\Java\\akasztofa\\img\\af_1.jpg"); break;
case 2: kep = new ImageIcon("af_2.jpg"); break;
case 3: kep = new ImageIcon("af_3.jpg"); break;
case 4: kep = new ImageIcon("af_4.jpg"); break;
case 5: kep = new ImageIcon("af_5.jpg"); break;
case 6: kep = new ImageIcon("af_6.jpg"); break;
}
(Próbáltam direkt kétféleképpen is, de egyikkel se megy a dolog)Ezt lefuttatom minden gombnyomás után:
kep = muvelet.faimg(hiba);
keplabel.setIcon(kep);Nem akarja megjeleníteni a képet, nem tudom mit rontok el
System.out.println-el is megnéztem, a kep megkapja az értéket (elérési utat), de amint lefut, az eredeti fehér kép helyén a keplabel-en semmi nem lesz, a fehér kép is eltünik.Ha szükséges a forráskódot is meg tudom mutatni.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Épített vízhűtés (nem kompakt) topic
- Milyen billentyűzetet vegyek?
- Magisk
- Dell notebook topic
- Fejhallgató erősítő és DAC topik
- exHWSW - Értünk mindenhez IS
- IGP nélküli processzorokkal készül az Intel és az AMD
- Trollok komolyan
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- One mobilszolgáltatások
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- AKCIÓ! Lenovo Legion Slim 5 16AHP9 notebook - R7 8845HS 16GB RAM 512GB SSD RTX 4060 8GB Win11
- Xiaomi Redmi Note 10 Pro 128GB Kártyafüggetlen, 1Év Garanciával
- Eladó ÚJ BONTATLAN Honor Magic6 Lite 8/256GB fekete / 12 hónap jótállással!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Game Pass Ultimate előfizetés azonnal, élettartam garanciával, problémamentesen! Immáron 8 éve!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest