- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Tomasz72: Ventilátor upgrade
- sziku69: Szólánc.
- Brogyi: CTEK akkumulátor töltő és másolatai
- MasterDeeJay: H110-es lapban 10.gen Comet Lake működhet?
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- Mr. Y: Motoros sztorik #06
Új hozzászólás Aktív témák
-
MrSealRD
veterán
Üdv!
Még kezdő vagyok kis segítségre lenne szükségem.
GUI-t készítek Swing komponensekből.
Indulóképernyő így nézne ki:.
Egy kép, egy JTextField, és egy JButton.
Az ablak átméretezése esetén a komponensek elhelyezkedése kövesse a méretezést. Tehát ami eddig relatíve lent volt, az továbbra is ott legyen. Jah és az a méretük szigorúan fix maradjon amit én létrehozáskor megadok.
A képnél ezt simán meg tudtam oldani, azonban a JTextField és a JButton esetében nem.
Erre valakinek van ötlete?Egy kb 25-30 elemű tömb elemeit szeretném kiíratni sorrendben ugyanennyi JTextField-et példányosítani, majd elhelyezni a panelen és az adott tömb elemét értékül adni neki.
Ez mennyire megvalósítható, vagy jó ötlet ha automatizálva ciklusból szeretném megoldani? -
Azazello-
senior tag
koszonom szepen a segitseget mindenkinek.
nem erettsegi, csak alap programozas.
-
dantes
tag
válasz
Azazello- #1791 üzenetére
2,
boolean result = S1.equals(S2);4,
for(int i = 0; i < str.length(); ++i) {
System.out.println(i + ": " + str.charAt(i));
}5,
private boolean checkSort(int[] x) {
for (int i = 0; i < x.length - 1; i++) {
if (num > num[i + 1]) {
return false;
}
}
return true;
}6,
HashMap hashMap = new HashMap();
hashMap.put("key", "value");
Object value = hashMap.remove("key");
boolean isContains = hashMap.containsKey("key"); -
Azazello-
senior tag
senki sincs aki segitene?
-
Azazello-
senior tag
sziasztok,
vizsgahoz kellene par egyszeru kerdesre megdnom a valaszt, de sajna meg mindig nem megy magamtol. valaki segitene megoldani az alabbi problemakat?
1,
String[] myArray = {“Jan”,”Feb”,”Mar”,”Apr”};
Loop true and print them out:---------------------------
2,
• Test for String equality
String S1 = “One”;
String S2 = “One”;-----------------
3,
Storing primitives in an ArrayList
charValue
public char charValue()
- Returns the value of this Character object.
- Returns: the primitive char value represented by this object.----------------------
4,
- Loop over a String
erre nem tudom, hogy jo e a megoldas...:
ArrayList=al
Arrasy=arAl.size();
Ar.lenght;For(int i=0; i< ar.lenght; i++)
----------------
5,
Write a method to verify if the numbers of a series are in ascending order
Int[] num = {1,2,6,5};
Private boolean checkSort(int[] x){
for(int i=0; i < x.length; i++)
if(???)
}
-----------------------
6,
HashMap
- Add to a HashMap
- Delete from a HashMap
- Does it contain a practicular key?------------------------
ezekre kene a valasz, illetve megoldas. koszonom elore is.
-
Sanyix
őstag
válasz
Gyuri16 #1788 üzenetére
nem jön össze olyanra mint a célfáljban.
ilyen xmlns:d="http://...." formára úgy tudom hozni hogy setprefix, de akkor meg bebiggyeszt a root tag elé is egy d:-ot, ahol egyébként nincs az eredetiben.
Ha setattribute ns-el csinálom, akkor meg a sima d nélküli xmlns mellé bebiggyeszt egy másik xmlns:ns0="d" néven, majd d:id helyett ns0:id-re csinálja az attribútumot.
-
Gyuri16
senior tag
d:type azt jelenti, hogy a d namespace type elementje. xml namespacek nagyjabol ugyanugy mukodnek mint c++ban. egy dokumentumon belul hasznalhatsz tobbet is, ezt kell a gyokerelementben definialni. a default namespace a xmlns es ha tobbet akarsz akkor xmlns:d formaban kell irni. kesobb pedig az elementekre ezzel a nevvel hivatkozol, tehat pl d:type. az hogy konkretan milyen betut rendelsz hozza mindegy, csak a xmlns attributumnak legyen beallitva a megfelelo URI. ha ezt az xml dokumentumot masnak kuldod feldolgozni, akkor jo lenne ha kompatibilisre csinalnad.
javaban az NS vegzodesu fuggvenyekkel lehet megnevezni a hasznalni kivant namespacet -
Sanyix
őstag
Azt azért megcsináltam, hogy a cucc szépen generáljon egy xml-t is, ne csak úgy kiköpjön egy text file-t.
Hasonlít is az eredetire, kivéve abban hogy néhány attribútumnak van egy d: eleje/vége is, tehát például xmlns="http://blbabla" helyett xmlns:d="http://blablaa", vagy ilyen hogy d:type meg d:blob.
Mik ezek a d:-ok? jelentenek valamit?Ilyennek kéne lennie[link]
ilyen amit a programom generál: [link]A kód xml felépítés része meg ilyen:
Document xmldoc=impl.createDocument("http://www.kuju.com/TnT/2003/Delta", "cRecordSet", null);
Element root= xmldoc.getDocumentElement();
root.setAttribute("id", Integer.toString(rnd.nextInt(randomsize)));
Element record= xmldoc.createElement("Record");
Element heightfieldtile= xmldoc.createElement("cHeightFieldTile");
heightfieldtile.setAttribute("id", Integer.toString(rnd.nextInt(randomsize)));
Element x= xmldoc.createElement("X");
x.setAttribute("type", "sInt32");
x.setTextContent(Integer.toString(tileX));
Element y= xmldoc.createElement("Y");
y.setAttribute("type", "sInt32");
y.setTextContent(Integer.toString(tileY));
Element blob= xmldoc.createElement("blob");
blob.setAttribute("size", "65536");
blob.setTextContent(heightfield);
root.appendChild(record); -
Sanyix
őstag
megvan már, a szokásos inicializálásnál 1 től számol, ha hozzáférsz 0-tól probléma.
Tehát inicializálta 16384-es méretre (mert ennyi magassági értéket olvas be), de a sorszám az meg 0-16383 így a for ban <= helyett < kellett.Na mostmár műxik a konverter, mostmár "CSAK" a resamplét kéne megoldani a tiff-re
-
Sanyix
őstag
válasz
Gyuri16 #1783 üzenetére
Ez tökéletes, köszi.
Viszont ilyen hiba van most:
String out=null;
for (int i=0; i<=ras.getHeight()*ras.getWidth(); i++) {
out=null;
out=(String.format("%08X",Integer.reverseBytes(Float.floatToIntBits(elevationData[i]))));
bw.write(out);
bw.flush();
//builder.append(space);
}majd egy idő után jön egy ilyen exeption ( a ras.getheight()*ras.getwidth() egyébként 65535 szokott lenni, tehát ennyiszer megy le a for):
java.lang.ArrayIndexOutOfBoundsException: 16384 méghozzá arra a sorra írja, ahol out=(String.format("%08X",Integer.reverseBytes(Float.floatToIntBits(elevationData)))); van. Ennek eredménye ugye nem lehet 8 karakternél több, direkt már le is null-ozom a stringet, de mégis kijön ez, hogy haladhatja meg a 16k karaktert? Ez mitől van? -
Sanyix
őstag
Létezik valami beépített módszer java-ban kép resampléra? szintén a 16bites geotiffet kéne resamplézni, pl 30 méter/pixel felbontásról 8méter/pixelre, szóval 3,75-ös "zoom"-al.
-
Sanyix
őstag
c01d44 ilyesmiket kéne fix 8 karakterre formázni, úgy hogy ha nincs meg 8 karakter a string akkor elé rak annyi 0-t hogy 8 legyen. ezzel próbálkoztam "%8S" de ez behúzza csak, 0kat nem rak az üres helyekre. Tehát a fenti hexet pl 00C01D44 formára kéne hoznia.
-
kte0
tag
Hello
Melyik a legjobb java-s zenelejátszó progi? -
shev7
veterán
en arra tippelek, hogy bar little endian a tarolas, de a toHexString az vegulis a hexa erteket adja meg a szamnak. Neked viszont nem az kell, hanem a hexa karakterek a gepi megjelenites formajaban. Ezert csinalsz egy forditast, majd a tohexstring megforditja neked ujbol, igy megkapod azt amire szukseged van.
-
Sanyix
őstag
és itt a jó kimenet okozó kód:
Integer.toHexString(Integer.reverseBytes(Float.floatToIntBits(elevationData[0])))
Most viszont azt nem tudom hogy a java big endian, vagy little endian formában tárolja a float-ot? Merthogy a célfájlt viszont egy full wines alkalmazás használja, az x86 meg little endian, de javaban még is meg kell fordítani. -
Sanyix
őstag
ááá megvan, idióta viccesfiúk csinálták azt az xml-t... azok a hosszú hexek igazából nem egyben vannak, az 2 db külön float32, és igazából a spacek sem jelentenek semmit...
-
Sanyix
őstag
na ezt már nem tudom, mert állítólag az egy float32, de egyértelmű hogy nem. Kipróbáltam mit művel ha oda én ieee 754 kalkulátorral kiszámított értéket írok, hát double ként sem jó, akárhogy próbálom. Szóval mostmár fogalmam sincs milyen formátum az, csak azt tudom hogy 2 tizedes pontosságig domborzatot tud tárolni, 8 méteres felbontással 1024 méteres oldalú négyzetben.
-
-
shev7
veterán
aham, sorry, felreertettem. szova hexa karaktereket kell kiirni.
az egesz dolgot csak azert mondtam, mert ott nincs tortresz, es valoszinuleg ha hex stringge konvertalod nem szorakozik a normal alakkal. bar most igy nem vagyok biztos benne. hogy az integernek van tohexstring metodusa. megneztem, van. En azt probalnam meg
-
Sanyix
őstag
egyrészt már rájöttem hogy az nem is float32, hiszen 8 hexa számnak kéne lenni, de 16 van uh ez valami 64bites dolog.
"de miert float? miert nem egesz tipusban tarolod?"
Ott még nem tartok hogy optimalizáljam, csak megfelelő outputot kéne összehozni.
Na meg nem binárisban kéne kiírni, hanem a hex értékeket sima szövegként, ugyanis egy xml-be kell majd kerülnie. Amúgy binárisban kiírva sem úgy néz ki ahogy kéne, hanem krikszkrakszos lesz.
ilyennek kéne lenni a végeredménynek, vagy legalább is a blob részben lévő adatoknak.
[link] -
Sanyix
őstag
Egy geotiff domborzati térképből szöveges alapú domborzati térképre szeretnék egy konvertert csinálni.
A geotiff úgy néz ki, hogy egy 16bites grayscale kép (amit persze sima képként nehéz olvasni), mindegyik pixel színértéke egy magasság. Ennek olvasásával nincs is gond, szépen beolvastam az egészet egy float tömbbe, mivel hogy a kimenő adatnak is 32bites float formátumban kéne lennie. Na de a float osztálynak van egy olyan metódusa, hogy tohexstring, de ez valami ilyen formátumba alakítja, hogy 0x1.bp7 ugye a p7 azt jelenti hogy 7. hatvány. Na de nekem tiszta float32-es hexben kéne, tehát ilyen valami ilyesmi kinézetre(ez nem ugyan az a szám!): 4192C240F6A90A41, (ez egy fordított sorrendes float32, mert a cucc amihez kell érthetetlen módon így használja, de a fordítás az nem téma)
Ezt hogyan? -
Orb1337
tag
Van egy keretem, arra ráhúztam a panelemet.
Szeretném megoldani azt, hogy ha rákattintok egy gombra akkor felugrik egy új panel.
colorchoosernél ugyen volt a showdialog utasítás, paneleknél hogy működik ez? -
shev7
veterán
a widlcard generic collectionok read-only-k. Nagyon jol hasznalhatok fuggvenyek bemeneti parameterekent.
Mivel a masodik esetben cc tipusa "unknown", ezert nem tethetsz bele semmit, hiszen ez az unknown semminek sem ososztalya.
Mivel read only, ezert amire hasznalhato az az, hogy fuggveny bemeneti parameterenek megaodod. Es akkor a fuggvenyt meghivhatod HashSet<Cage<Lion>> es HashSet<Cage<Tiger>> parameterrel is.
-
redbug
csendes tag
Java fejlesztőt keresünk budapesti irodánkba
Az új kolléga feladata a már meglévő rendszerek karbantartása, bővitése, új problémák megoldása.
Szükségünk van rá, hogy tudj önállóan gondolkozni, ki tudd emelni a lényeget.* 3-4 éves szakmai tapasztalat
* Szerver oldali alkalmazások fejlesztésében szerzett több éves jártasság
* Alkalmazás szerver ismeret (valamelyik: JBoss, Tomcat, WebLogic, WebSphere, GlassFish stb.)
* SQL ismeret, tranzakció szemléletű adatbázis kezelés ismerete
* Szakmai angol nyelv biztonságos használata
* Önálló munkavégzés, csapatorientált gondolkodásElőnyök:
* Nagy terhelésű szerveralkalmazás fejlesztésében szerzett jártasság
* Valamely alkalmazásszerver adminisztrátori szintű ismerete
* Erős SQL ismeretJelentkezés:
Amennyiben alkalmasnak érzed magad a hirdetett állásra, kérünk, jelentkezz a
job@dewsys.com
címen!
-
ar
tag
Sziasztok!
Valaki homalyositson mar fel lecc:
Ha,
Lion IS-A Animal es adott Cage<T>, akkor
Cage<? extends Animal> c = new Cage<Lion>(); // ok
ellenben,
Set<Cage<? extends Animal>> cc = new HashSet<Cage<Lion>>(); // not ok
Mit nem latok?
-
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) -
shev7
veterán
-
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]; ) -
shev7
veterán
válasz
Chris_T #1757 üzenetére
Igen magat az objektumot adja vissza. De Object is, hiszen javaban minden osztaly az Object osztalybol szarmazik. Ugy latom az objektumorientalt programozas alapjai hianyoznak egy kicsit.
persze hogy mukodtek. Mert a getSource azt az objektumot adja vissza amit te szeretnel. Ennek a toString metodusa kerul meghivasra stb. (De attol hogy ennek a tipusa Babu, attol az meg Object is, hiszen abbol szarmazik. A toStringre nem szol be a fordito, mert olyanja van az Objectnek is)
DE ez mind futasi idoben tortenik. Forditasnal viszont a fordito nem tud semmit errol az objektumrol, neked kell megmondanod, hogy mi az.
-
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
-
shev7
veterán
válasz
Chris_T #1755 üzenetére
"úgytünikcastolással se müködik, "
Ezt kifejtened? marmint hogyan castoltal? mert pont az a megoldas.
ugyanis ez: "mikor konkrétan lehet tudni hogy az egy 'JPanel'-ból származtatott 'Babu' osztályú objektum" hulyeseg. nem lehet tudni. Legalabbis a kodod nem tudja. az Event getSource() methodusa Object-et ad vissza. Neked kell megmondanod, hogy ott eppen ez az Object mi is valojaban, ezert kell castolni.
-
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
-
-
Löncsi
őstag
-
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);
}
} -
shev7
veterán
válasz
atm*RefeeZ #1746 üzenetére
szerintem kezdj el nezegetni valami konyv utan ami elmagyarazza az objektumorientaltsag, orokles stb. alapjait. De igen, eleg
-
-
shev7
veterán
válasz
atm*RefeeZ #1742 üzenetére
legegyszerubb javadoc-ban megnezni milyen tagfuggvenyei vannak. biztos lesz getText vagy hasonlo. (arra figyelj, hogy Compnent-et kapsz vissza, szoval kasztolnod kell)
-
atm*RefeeZ
tag
próbálom én struktúrálni
debug ment folyamat, visszakaptam (elvileg) mindig, gyk. nem. rossz dolgot adtam vissza a getComponentAt()-tel, de a ha egyenlő return c; teljesen jól működik
az az újabb kérdés, hogy ha visszakapok így egy komponenst, ami eredetileg textfield volt, miként tudom kinyerni a textfield tartalmát? - csak most állok neki kutatni, de mivel egyelőre dunsztom sincsen, merre keressem, ha valakinek van tippje, szóljon
-
Blaise
veterán
Hali
Van olyan parancs, amivel egy vektorból tudok véletlenszerűen elemet kiszedni?
-
shev7
veterán
válasz
atm*RefeeZ #1735 üzenetére
"mert a huszadik ilyen után egy nagy maszlag lesz a programból."
strukturald a programod, es akkor nem
egyebkent meg equals-szal mukodnie kell. Debuggold, hogy kapod-e vissza egyaltalan a c.getName() hivasokbol azt a nevet amit szeretnel...
-
Löncsi
őstag
válasz
atm*RefeeZ #1735 üzenetére
De String-et h hasonlítasz össze akkor '==' -al ?
Elvileg az úgy nem jó... -
atm*RefeeZ
tag
Szia!
Az adott komponensre rálel név alapján, és másik fórumon ki is lettem javítva, hogy a
this.getComponentAt(c.getLocation())
felesleges, simán return c; elég lenne utána. Kezdek tanácstalan lenni
Nem akarok minden textfield-et úgy létrehozni, hogy TextField akarmi = new TextField(); mert a huszadik ilyen után egy nagy maszlag lesz a programból. -
Löncsi
őstag
válasz
atm*RefeeZ #1733 üzenetére
if( c.getName().equals(componentName) )
Így próbáld, hátha.
-
atm*RefeeZ
tag
Sziasztok.
Az volna a kérdésem, hogy miként tudok utóbb hivatkozni olyan ojjektumra, amit korábban nem tároltam változóban, hanem pl. feltettem a GUI-ra, és jóidő.
Emígy szól a 'csináló' metódus:
private TextField createTextField(String text, String name, int cols)
{
TextField nextTextField = new TextField(text, cols);
nextTextField.setName(name);
return nextTextField;
}Aztán így próbálok később hozzáférni:
private Component getByName(String componentName, Container cont)
{
for(Component c : cont.getComponents())
{
System.out.println(c.getName());
if(c.getName() == componentName)
{
return this.getComponentAt(c.getLocation());
}
}
return null;
}Az elgondolás az volt, hogy a komponenst megnevezve megszerzem magamnak az uralmat fölötte, de valami nem úgy működik, ahogy szeretném. Pl. , ha setBackground-ot vagy setForeground-ot állítok, semmi sem történik, setEnabled(false) -ra pedig meghal a teljes program.
Mit szúrok el? Bármi ötlet jól jönne
Köszöntem!
-
válasz
Votyesz13 #1731 üzenetére
A kódodban a következő sorod helyére kell egy kódrészlet, ami feldolgozza az inputot. Ezután már csak a választ kell visszaküldened. Tehát a sor: jout.println("Echo: " + str); Javaslom, hogy írj egy parser classt, ami feldogozza az inputot, és azt példányosítsd le. Tömören,röviden ennyi.
-
Votyesz13
tag
Sziasztok
Valaki tudna nekem ebben segíteni?
A szervernek el kell végeznie a kliens által küldött float típusú számokon a kért számításokat. (összeadás,kivonás,osztás,szorzás,gyökvonás,pozitív egész kitevőjű hatványozás) Tetszőleges számra is működnie kell. (példa input: 5.1 + 2.9 * 3.4 gyök hatv 3 = ) Ekkor a szervernek a következő számítást kell elvégeznie: ( gyök((5.1 + 2.9) * 3.4) )^3 . Tehát nem kell a műveletek precedenciájával foglalkozni, mindig az utolsó részéredmény és az új szám lesz a művelet két operandusa. Az = műveletre küldjük vissza a kliensnek a végeredményt, ő pedig írja ki a képernyőre. A szerver párhuzamosan több klienst is tudjon kiszolgálni. Tegyük fel, hogy a felhasználó helyes inputot küld. Ellenőrizzük az input helyességét, és írjuk ki, hogy mi a hiba.(+) Az inputban az operandusok és a műveleti jelek között tetszőleges számú és mennyiségű whitespace (space,TAB,újsor) szerepelhet.(+)Multiecho szerverből akarok kiindulni.Az így nézne ki:
import java.io.*;
import java.net.*;public class MultiEchoServer {
public static int MYECHOPORT = 8189;
public static void main(String argv[]) {
ServerSocket s = null;
try {
s = new ServerSocket(MYECHOPORT);
} catch(IOException e) {
System.out.println(e);
System.exit(1);
}while (true) {
Socket incoming = null;
try {
incoming = s.accept();
} catch(IOException e) {
System.out.println(e);
continue;
}new SocketHandler(incoming).start();
}
}
}class SocketHandler extends Thread {
Socket incoming;
SocketHandler(Socket incoming) {
this.incoming = incoming;
}public void run() {
try {
BufferedReader reader =
new BufferedReader(new InputStreamReader(
incoming.getInputStream()));
PrintStream out =
new PrintStream(incoming.getOutputStream());
out.println("Hello. Enter BYE to exit");boolean done = false;
while ( ! done) {
String str = reader.readLine();
if (str == null)
done = true;
else {
out.println("Echo: " + str);
if (str.trim().equals("BYE"))
done = true;
}}
incoming.close();
} catch(IOException e) {
e.printStackTrace();
}
}Előre is köszi.
üdv bolvar
-
válasz
HUNNIA1920 #1728 üzenetére
Annyit kell csinálnod, így utólag, hogy:
A kártyákhoz rendelsz 1-1 értéket. Mindegyhogy milyet. Aztán a kártyalapok tartományában generáltatsz annyi darab random számot, amennyi lapod van. Fontos, hogy 1 szám csak 1szer szerepelhet. Ez a random szám lesz a lapok sorrendje, ezt eltárolod valamilyen kollekcióban, majd ezt a kollekciót rendezve végigjárva, kirajzolod a számokat.
-
bigskull
tag
válasz
HUNNIA1920 #1728 üzenetére
na ez bizony engem is erdekelne. ugyanis egy sorral hatrebb de itt ulok en is.
-
HUNNIA1920
őstag
Sziasztok!
Tudna nekem valaki segiteni azonnal? Egy feladatot kene megcsinaljak 2 oran belul. A feladat egy kartyapakli lenne, amiben keverni kell tudni.
Itt van egy .gif rola, hogy hogy is nezzen ki: itt.
Surgos lenne!
Koszonom elore is! -
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
)
-
Votyesz13
tag
válasz
Chris_T #1723 üzenetére
Igen érdekelne
Egy olyan infót kifelejtettem belőle hogy server kliens módon kell megcsinálni
Ez lenne az am:
A szervernek el kell végeznie a kliens által küldött float típusú számokon a kért számításokat. (összeadás,kivonás,osztás,szorzás,gyökvonás,pozitív egész kitevőjű hatványozás) Tetszőleges számra is működnie kell. (példa input: 5.1 + 2.9 * 3.4 gyök hatv 3 = ) Ekkor a szervernek a következő számítást kell elvégeznie: ( gyök((5.1 + 2.9) * 3.4) )^3 . Tehát nem kell a műveletek precedenciájával foglalkozni, mindig az utolsó részéredmény és az új szám lesz a művelet két operandusa. Az = műveletre küldjük vissza a kliensnek a végeredményt, ő pedig írja ki a képernyőre. A szerver párhuzamosan több klienst is tudjon kiszolgálni. Tegyük fel, hogy a felhasználó helyes inputot küld. Ellenőrizzük az input helyességét, és írjuk ki, hogy mi a hiba.(+) Az inputban az operandusok és a műveleti jelek között tetszőleges számú és mennyiségű whitespace (space,TAB,újsor) szerepelhet.(+)A baj hogy én c-t tanultam eddig és a java halozat szinten sok:S Egy multiecho szerverből gondoltam kiindulni mert hogy több clienset kell kezelni.
-
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
-
Votyesz13
tag
Sziasztok
Nekem egy olyan kérdésem lenne hogy egyszerű számoológéphez valaki segítséget tuna e?Előre is köszi.
üdv bolvar
-
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);
}
} -
eziskamu
addikt
válasz
Lortech #1719 üzenetére
A doInBackground belsejét próbáltam már kikommentelni is, a Netbeans Profilerével meg még most kezdtem ismerkedni
Az osztály:
class sMin extends SwingWorker<String[], Void> {
@Override
public String[] doInBackground() {
//try{Thread.sleep(300);}catch(Exception e){}
String cszam=s2.getCSzam();
String azon=s2.getAzon();
String[]ts2;
ts2=ca1.getElement(cszam, azon);
if(ts2==null){
ts2=getSor(cszam,azon,ts2);
ca1.pushElement(cszam, azon, ts2);
return ts2;
}
return ts2;
}
@Override
protected void done() {
String[]ts2;
try {
ts2=get();
try{hKod.setSelectedIndex( Integer.parseInt(ts2[0]));}catch(Exception e){}
mFaz.setSelectedIndex(getIndex(ts2[1],mFazok2));
nmDesc.setText(ts2[2]);
ibDesc.setText(ts2[3]);
juDesc.setText(ts2[4]);
dolg.setText(ts2[5]);
mJel.setSelectedIndex(getIndex(ts2[6],mJelek2));
mFazItemStateChanged();
s1.setIt(false);
} catch ( java.util.concurrent.CancellationException e) {}
catch ( Exception f) {s1.setIt(false);}
}
}
És ahogy példányosítom.
private void showMin(String cszam,String azon){
boolean b1=false;
try{
b1=!pb0.isAlive();
}
catch(Exception e){
b1=true;
}
if(!s1.isTrue()&& b1){
s1.setIt(true);
pb0=new Thread(new Runnable(){public void run(){pBar();}});
pb0.start();
}
//try{sw0.cancel(true);}catch(Exception e){System.out.println(e);}
s2.setCSzam(cszam);
s2.setAzon(azon);
sw0=new sMin();
sw0.execute();
}
Azt majd még megnézem, hogy nem-e a pb0 okozza a bajt, ami egy progressbar-t húzogat össze-vissza, mert azt még marhára nem tudom, hogy szerezzek pontos infót, az adatbázisművelet állapotáról, de arra a 2-3 mp-re nem is kell pontos infó, valamint majd átírom propertychange-re a vezérlését. -
Lortech
addikt
-
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) -
eziskamu
addikt
Nekem bajom lenne a Swingworkerrel (de lehet inkább a java futtatókörnyezetet kellene hangolnom, a végén kiderül miért).
Eddig nem bajlódtam azzal, hogy megakasztják a felületet az adatbázisműveletek, amiket a program előző verziója is használt, de most bonyolítani/"fürgébbé" tenni akartam a programotLétrehoztam egy új osztályt ami megvalósítja a Swingworker-t . Elég sokszor példányosítom az osztályt, és hívom az execute() metódusát, és ahogy nézem megmarad a memóriában (java.exe memfoglalása nő, minden execute() során, de addig még sose próbáltam, hogy be is teljen a teljes memória, viszont gyengébb gépre lenne a progi). Próbáltam .cancel()-t is, hívni, ha utólag (!) kiderül, hogy nem kellett volna futnia (igazából a műveletek alig tartanak 1-2 másodpercig, de közben egy táblában elmozdulhat a sorkijelölés, ami hatására újra indul a példányosítás és az execute() közvetetten).
Próbáltam a garbage collectort is hívogatni, de csak egy picit ugrik vissza. Igazából csak akkor csökken le a programot futtató java.exe memfoglalása, ha az alkalmazást lecsukom a tálcára, akkor viszont teljesen, még talán kisebb is lesz a memfoglalás, mint mikor elindult a program. Esetleg ez egy prefetch szerű dolog a java.exe-ban, és automatikusan alkalmazkodik a szabad memóriához? -
Lortech
addikt
válasz
Chris_T #1714 üzenetére
e.getSource().equals(gomb1)
Az eseményt kiváltó, ill azon komponens referenciáját adja vissza a getSource, amelyen az esemény történik, ezt hasonlítja a paraméterként adott objektum-referenciával.
Pl. ha több komponensnek is ugyanazt az eseménykezelőt adod meg, akkor így tudod meghatározni, hogy melyik komponensedről van szó éppen a konkrét esemény feldolgozása közben.
-
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)
-
bpx
őstag
válasz
Azazello- #1708 üzenetére
egy bűn ronda és egyszerhasználatos megoldás
(talán ehhez kell a legkevesebb pluszt hozzátenni ill. módosítani a kódban):
Numbers osztályban egy új függvény:
(nem kiírja a sort mint a printLine(), hanem String-et épít belőle - és az utolsó szám után nem tesz space-t)public String getLine() {
String ret = "";
for(int i=0;i<index.length;i++){
ret += String.format("%2d" + (i==index.length-1?"":" "), index[i]);
}
return ret;
}Tickets osztályban kiíratás pedig:
itt ugye "bele van égetve" a programkódba, hogy hol milyen karakterből mennyi legyen (még szerencse hogy a sorok mindig egyforma hosszúak)public void printTicket(){
System.out.println("* * * * * * * * * * * * * *");
System.out.println("** **");
System.out.println("** Lottery Tickets **");
System.out.println("** **");
System.out.println("* * * * * * * * * * * * * *");
for (Numbers n : lottoLines) {
System.out.println("** " + n.getLine() + " **");
}
System.out.println("* * * * * * * * * * * * * *");
}persze lehet sokkal szebben meg univerzálisabban, de egy ekkora példánál felesleges szerintem
-
wiggen123
senior tag
válasz
Azazello- #1702 üzenetére
Nyomkodjad a spacet meg a backspacet, amíg jó nem lesz, vagy nem tudom milyen tanácsra vársz...
Sose értettem, miért akarnak az emberek ilyen csicsás kiíratás dolgokat programozni. Én mindig csak annyit csináltam, amit feltétlen muszáj volt. Úgyse az a lényeg, hogy milyen szépen íratsz ki konzolra... Egyik tanárom a bináris fákat irattatta ki valami eszméletlen durva módon c-ben. Ha már ennyire csicsázni akarod használj swinget
Mod: Látom nálatok ezen szőröznek, hogy tényleg ilyen csicsa kell a kiíratáshoz. Na akkor én hogy csinálnám: a számokat összefűzném egy stringbe szóközökkel elválasztva. Megnézném mekkora lehet max a hossz (ha minden szám kétjegyű lett a húzásnál az mennyit jelent) ehhez határoznám meg a felső és alsó keretek hosszát. A közbülső ticketes sorokat pedig ahogy már elkezdtem mondani egy sztringbe a számok elválasztva, elé a "* ". Majd kiszámolod mennyi hely van még és annyi spacet hozzáfűzöl egy for ciklussal, végül a * a végére, és kész a ticketes sor is.
-
bpx
őstag
válasz
Azazello- #1702 üzenetére
a Numbers osztály printline() függvénye új sort kezd, így nehéz lesz a csillagot odavarázsolni a sor végére utólag
ha ettől eltekintünk, a "%2d " miatt ugye mindig egyforma hosszú sorokat ír ki, szóval előre lehet tudni hogy hány db csillag vagy space kell a keret soraiba -
8nemesis8
veterán
Sziasztok!
Szeretnék kicsit jobban megismerkedni a java servletekkel , egy könyvet kinéztem:
Jason Hunter
Java Szervletek Programozása
Van valakinek tapasztalata vele?
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- exHWSW - Értünk mindenhez IS
- Asztalos klub
- Amazon Kindle
- REpont és hulladékgazdálkodás
- LEGO klub
- Okos Otthon / Smart Home
- A Samsung bemutatta az Exynos 2500-at
- Allegro vélemények - tapasztalatok
- Azonnali fáradt gőzös kérdések órája
- További aktív témák...
- BESZÁMÍTÁS! ASRock B250 i5 7400 16GB DDR4 512GB SSD GTX 1660 SUPER 6GB Rampage Everest 500W
- Honor Magic5 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Apple Macbook Pro 13 2020 - M1 - 8GB/256GB SSD - Touch Bar - 102 Ciklus - 99% Akku - Ezüst - MAGYAR
- AKCIÓ! Dell Alienware M17 R3 Gamer notebook - i7 10750H 16GB DDR4 1TB SSD RTX 2070 8GB WIN10
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged