- iPhone topik
- Motorola Razr 60 Ultra - ez a kagyló könnyen megfő
- Netfone
- Karaktere biztos lesz az első Nothing fejhallgatónak
- Apple Watch
- Honor 400 Pro - gép a képben
- Samsung Galaxy S20 és S20+ duplateszt
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Nem lett arányos a fogyókúra
- Xiaomi 14T - nem baj, hogy nem Pro
Új hozzászólás Aktív témák
-
Chris_T
tag
ez az, kösz a tippet
ilyesmire gondoltam én is csak nemtudtam hogy lehetne megoldani (nem dolgoztam még ilyen módon obj. referenciákkal)az első ötlet az volt hogy lenne egy folyamatosan futó ciklus a táblában ami figyeli pl a bábúk selected adattagjának változását, de ez talán felesleges erőforrás-pazarlás lett volna
remélem így jo lesz mostmár, de a lényeg hogy egyelőre működik
((Babu)e.getSource()).getOwner().mezoModosit((Babu)e.getSource());
így tulajdonképp vissza lesz küldve módosításra az adott mező (ami az eredeti célt meg is valósítja) -
Chris_T
tag
ja, mostmár valamennyire értem
mostmár nagyjából megvan az alapja az egész programnak, csak azt nem tudom hogy oldjam meg a kommunikációt két olyan objektum közt amikor egyik számára nem ismert a másik obj.példány neve, mégis meg kéne hívni a metódusát
konkrétan arról van szó hogy a bábuk tömbjét (class Babu extends JPanel) adatelemként tartalmazó objektum (class Tabla) tartalmazza a tömböt módosító metódusokat is , ezeket kellene meghívni az egyes bábúkra aggatott eseménykezelőkből (MouseListener), csak hát a az eseménykezelő nem tudja a nevét a táblának ami egy másik osztályban, az ablakban kerül példányosításra (Ablak extends JFrame)
ami leegyszerűsítené a dolgokat hogy a Tabla class implementálná a MouseListentenert is egyben, és így abból egyszerűen meg lehetne hívni a 'Tabla' metódusait
azonban ez ellentmondana a terveimnek (külön classok) illetve az újrafelhasználhatóságnak[link]
itt találtam megoldásokat, csak ebben az esetben nem olyan egyszerű mert nem az eseményt kiváltó objektum metódusát kell meghívni hanem annak az objektumnak (tábla) a metódusát ami az eseményt kiváltó objektumok tömbjét tartalmazza adattagként ( Babu[][] mezok = new Babu[5][5]; ) -
Chris_T
tag
"az Event getSource() methodusa Object-et ad vissza."
na, kösz ezt nem tudtam (gondoltam magát a konkrét objektumot adja vissza mert az összehasonlítás egy ugyanolyan tipusú objektummal és az instanceof, toString működött eddig is, de akkor ezekszerint nem ezért )Na, megvan a probléma: rossz volt a zárójelezés és ezért nem fogadta el a cast-olást
-
Chris_T
tag
Helló, ismét lenne egy kérdésem, ezúttal eseménykezeléssel kapcsolatban:
Habár már dolgoztam MouseListener-el, és jól is müködött
most hogy elkezdtem újrairni a programomat különálló osztályokban (egy táblajáték) egyre több a probléma, az egyik hogy az eseménykezelő e.getSource() metódusa elvileg az 'e' eseményt kiváltó objektumot adja vissza
ennek az egyik metodusát hivnám meg ( getBackground() , mivelhogy egy JPanel példányról van szó)
de nem hajlandó leforditani se, arra hivatkozva hogy a getBackground()-ot nem találja az ősosztályban (Object) , amit nem értek, hiszen be van importálva az az osztály amiböl a kérdéses objektum van példányositva (JPanel), illetve ugyanez müködött amig egyben volt az egész programa fordítási hiba:
.\elements\EsemenyKezelo.java:13: cannot find symbol
symbol : method getBackground()
location: class java.lang.Object
if( e.getSource().getBackground().equals(Color.GREEN) )Azt nem értem, hogy miért simán Object-ként kezeli, miért ott keresi a getBackground()-ot, mikor konkrétan lehet tudni hogy az egy 'JPanel'-ból származtatott 'Babu' osztályú objektum, és abban benne van ez a metodus
u.i: úgytünik castolással se müködik, illetve akkor se ha az obejektum csak simán JPanel
-
-
Chris_T
tag
Üdv.
Egy olyan problémám van ami már rettentő idegesítö, mert teljesen érthetetlen és nem találok rá semmi megoldást
GUI-val kapcsolatosVan egy Ablak osztály ami a JFrame-t örökli
Ha ebben hozok létre egy JLabel-t és adom hozzá, akkor a szöveg egyszerü formázatlan szövegként fog megjelenni az ablakban ( UIManager-el átállítottam a kinézetet, ezért itt nem hat az hogy a swing alapesetben félkövérre állítja a szövegeket)De ha ezt a JLabelt egy előre létehozott külső osztályból importálom akkor minden beállítás ellenére félkövérre állítja
Itt viszont arra gyanakodtam hogy erre már nem terjed ki a Ablak osztály UIManager beállítása - de hiába állítottam itt is be külön a kinézetet, nem működik)
Ha van valakinek valami ötlete, írjon, elöre is kösznéhány kódrészlet:
Az ablak osztály egyes részei:
public class Ablak extends JFrame {
Status statusz;
JLabel valami;
[...]
public Ablak() {
statusz = new Status();
valami = new JLabel("nem félkövér, egyszerű szöveg");
[...]
add(statusz);
add(valami);
}
}A teljes Status osztály:
import javax.swing.*;
import java.awt.*;
public class Status extends JLabel {
String text;
public Status() {
text = new String("ez nem kellene hogy félkövér legyen");
setText(text);
}
} -
Chris_T
tag
válasz
Votyesz13 #1724 üzenetére
szte/hálózatok 2010 kötprog esetleg?
sajnos ebben nem vagyok otthon (nekem is lenne elvileg, de nem vettem fel most ezt a tárgyat), de lehet hogy ezt még egyszerűbb lenne konzolosan elkészíteni
mindenesetre ami kész van azt még ma este felrakom, hátha segít valamit (aztán csinálom a java kötprogot hátha lesz belöe valami
)
-
Chris_T
tag
válasz
Votyesz13 #1722 üzenetére
Helló
Én úgy csinálnám (ha GUI-val ellátott számológépröl van szó):
Ablak osztály mely a JFrame-t örökli:
-ezen belül a gombváltozók(tömb), egy JLabel az eredmények kijelzésére, és a számváltozók (a, b, c)
-konsruktor mely létrehozza az Ablakot (beállítja az ablak tulajdonságait, az elrendezést, létrehozza a gombokat, feltölti vele az ablakot)
-egy eseménykezelő metódus
-egy számoló metódusProgram föosztály
-ezen belül a main metódus, ebben csak példányosítani kell az Ablak-ot, és láthatóvá tenni (bár azt a konstruktorában is lehetne)Közben el is kezdtem csinálni, én is már régóta akartam egyet írni
(ha érdekel késöbb beposztolom a kódot)szerk.: +megoldani a számok bevitelét műveleti gomb megnyomásáig, na ez lehet hogy nem is lesz olyan egyszerü mint gondoltam elsőre
-
Chris_T
tag
Üdv újra
ha valaki tapasztalt a paintComponent() használatában, le tudná irni hogy lehet az alább is látható "felület"-et többféle alakzat kirajzolására használni, anélkül hogy újabb rajzfelületeket kelljen létrehozni minden alakzatnakclass Felulet extends JPanel {
Felulet() {
setPreferredSize(new Dimension(600,290));
setOpaque(true);
}
protected void paintComponent(Graphics g) {
g.setColor(Color.RED);
g.fillRect(x0, y0, x1, y1);
}
} -
Chris_T
tag
válasz
Lortech #1715 üzenetére
Kösz,
közben rá is jöttem hogy müködik pontosanIgazából azt nem értettem hogy a getSource metódust hogyhogy lehetséges ponttal elválasztva összekötni az equals metódussal
Aztán leesett hogy mikor a getSource visszaadja obj. referenciáját -> annak hívja meg az equals metódusát (mivelhogy minden objektumnak megvan ez a metódus) -
Chris_T
tag
Üdv.
Az esemény kezeléssel kapcsolatban lenne egy kérdésem, azon belül pedig az aktivált elem alapján történő vizsgálat:
e.getSource().equals(gomb1)
nem egészen értem hogy itt hogy az e esemény getSource metódusának meghivásakor hogy hogy is müködik a .equals
az action command alapján történő vizsgálatot még értem
e.getActionCommand() == "egyes"
mert itt a visszaadott érték egy string, és ezt hasonlitja össze egy másikkal( itt találtam egy jó tutorialt, csak ebben pont az nincs részletezve)
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Új Gamer PC - Ryzen 7 5700X / RTX 5060 / A520M / 16GB vagy 32GB RAM / 240GB + 1TB M.2 SSD / 650W
- Samsung Galaxy Z Fold 4 256 GB, szürkészöld + S Pen tok
- TP-Link ER-7212PC Omada 3-in-1 Gigabit VPN Router
- TP-Link EAP Omada Wifi AP-k (225, 245, 615)
- Mars Gaming ML-LCD240 2x ARGB 120mm FDB Fan LCD Display (Alkatrésznek) INGYEN FOXPOST
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
- Samsung Galaxy A22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- KIÁRUSÍTÁS - REFURBISHED és ÚJ - Lenovo ThinkPad Ultra Docking Station (40AJ)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest