Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
- Windows 10
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Tényleg betilthatja a TP-Linket az USA
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen routert?
- Jelszókezelők
- Mozilla Firefox
- KAÜ/Ügyfélkapu – már elérhető a kétfaktoros hitelesítés
- Mikrotik routerek
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
Új hozzászólás Aktív témák
-
artiny
őstag
Valaki csinalt mar ms access filet hozza kapcsolni java hoz.?
van ez a kod:
public void Connect() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// String DatabaseFile = "D:java/Invertory.mdb";
// String DATABASE =
// "jdbc:odbc:Driver="
// + "{Microsoft Access Driver (*.mdb, *.accdb)};"
// + "DBQ=" + DatabaseFile;`enter code here`
String DATABASE ="jdbc:odbc:Driver= Microsoft Access Driver (*.mdb, *.accdb);DBQ=Invertory.mdb";
CONEX = DriverManager.getConnection(DATABASE);
} catch (Exception X) {
X.printStackTrace();
//JOptionPane.showMessageDialog(null,e);
}
}
ez az error uzenet:java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
http://www.youtube.com/watch?v=Of4LRHOZoII
hozza adtam a control panelben az ODBC nel az Access drivert.
http://i.imgur.com/CAXievm.png -
-
Taoharcos
aktív tag
Köszönöm a sok tanácsot, sok hasznos instrukciót kaptam.
Végül az alább látható containsUser-el oldottam meg a feladatot. Mi a véleményetek a megoldásról?package com.corejsf;
import java.io.Serializable;
import java.util.*;
import javax.faces.bean.*;
@ManagedBean(name="userbean")
@SessionScoped
public class UserBean implements Serializable{
private String name;
private String password;
private String userListToString;
private static ArrayList userList = new ArrayList();
private User user;
public String addUser(){
user = new User(name, password);
userList.add(user);
userListToString = userList.toString();
if(containsUser(userList, user)){
return "thankYou";
}
else {
return "loginFail";
}
}
public boolean containsUser(ArrayList<User> userList, User user){
boolean isContainsUser = false;
for(int i = 0 ; i < userList.size(); i++ ){
if(userList.get(i).getName().equals(user.getName())&&userList.get(i).getPassword().equals(user.getPassword())) {
isContainsUser = true;
}
}
return isContainsUser;
}
public String loginUser(){
user = new User(name, password);
userListToString = userList.toString();
if(containsUser(userList, user)){
return "thankYou";
}
else{
return "loginFail";
}
}
public String getUserListToString() {
return userListToString;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}A JSF-el ismerkedem, csak közben gondoltam, egy kis kitérőt teszek az ArrayList irányába. Természetesen később nyilván egy adatbázis a végső megoldás. De egyszerre kezdőként nem akarok több dolgot is csinálni.
[ Szerkesztve ]
-
modder
aktív tag
válasz Taoharcos #3786 üzenetére
Illetve a private static List userList = new ArrayList();-t tedd inkább egy @ApplicationScoped bean-be nem static-ként, mert semmi garancia nincs rá, hogy egy konkurens felhasználó, akit másik http worker szál szolgál ki szerver oldalon, ugyanazt fogja látni a userList-ből.
-
artiny
őstag
válasz skoda12 #3784 üzenetére
a blokkolo dolgokat kivettem mar es az ket darab enabledot is bekapcslam a ket gombra.(save es a cancelra)
Amikt irtal a ResultSet rol azt azzal nem oldahato meg ha kommentelem a .close(); -t?a save button ilyen most:
private void btnSaveRecordActionPerformed(java.awt.event.ActionEvent evt) {
//...................................................................................
String first = textFirstName.getText();
String last = textLastName.getText();
String job = textJobTitle.getText();
String ID = textID.getText();
int newID = Integer.parseInt(ID);
try {
VALUES("+newID+",'"+first+"','"+last+"','"+job+"')";
String insertSql = "INSERT INTO Workers (ID,FIRST_NAME,LAST_NAME,JOB_TITLE) VALUES(" + newID + ",'" + first + "','" + last + "','" + job + "')";
stmt.executeUpdate(insertSql);
rs.next();
int id_col = rs.getInt("ID");
String id = Integer.toString(id_col);
String first2 = rs.getString("First_Name");
String last2 = rs.getString("Last_Name");
String job2 = rs.getString("Job_Title");
textID.setText(id);
textFirstName.setText(first2);
textLastName.setText(last2);
textJobTitle.setText(job2);
} catch (SQLException err) {
System.out.println(err.getMessage());
}PreparedStatementet -pedig most utana nezek
[ Szerkesztve ]
-
Mukorka
addikt
válasz Taoharcos #3786 üzenetére
Ha már tanácsadás megy nagyban: A ManagedBean name értéke lehetne userBean , nem pedig userbean.
Ha Serializable interface-t implementálsz akkor pedig vagy legyen serialVersionUID megadva (ezt generálja magától az eclipse is ha megkéred rá) vagy legyen Annotálva az osztály : @SuppressWarnings("serial").
Kerüld a "felkiáltójeles" kódot!Ui: inkább cseréld le a listában tárolt user megoldást adatbázisban tároltra.
[ Szerkesztve ]
Mukor#2214 --- "Ezt nem én gondolom így, EZ EGY TÉNY!"
-
skoda12
aktív tag
válasz Taoharcos #3786 üzenetére
Az elottem szolokhoz meg annyit tennek hozza, hogy ha csak a contains()-t hasznalod egyelore, akkor ArrayList helyett erdemes lenne LinkedHashSetet hasznalnod. Ez a sorrendet is tartja es hatekonyabb a contains() hivas. + a collectionoknek adj meg generic tipust is <> koze.
-
Mukorka
addikt
válasz Taoharcos #3786 üzenetére
A loginUser fv hiába csinál a meglévő adatokkal új user objektumot , az mint példány még nincs benne az arraylist-ben ezért lesz false. Mivel nem írtad felül az equals függvényt a User osztályban így az alapértelmezett (örökölt) equals azt nézi hogy ugyan az-e a két objektum memóriában tárolt elérési címe. Ez azért lényeges mivel az ArrayList is a tárolt elemek equals függvényét használja ahhoz hogy megmondja mi van a listában és mi nincs.
[ Szerkesztve ]
Mukor#2214 --- "Ezt nem én gondolom így, EZ EGY TÉNY!"
-
Taoharcos
aktív tag
válasz Taoharcos #3785 üzenetére
Ja valami kód is:
package com.corejsf;
public class User {
private String name;
private String password;
public User(String name, String password){
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}package com.corejsf;
import java.io.Serializable;
import java.util.*;
import javax.faces.bean.*;
@ManagedBean(name="userbean")
@SessionScoped
public class UserBean implements Serializable{
private String name;
private String password;
private String userListToString;
private static List userList = new ArrayList();
private User user;
public String addUser(){
user = new User(name, password);
userList.add(user);
userListToString = userList.toString();
if (userList.contains(user)){
return "thankYou";
}
else {
return "loginFail";
}
}
public String loginUser(){
user = new User(name, password);
userListToString = userList.toString();
if(userList.contains(user)){
return "thankYou";
}
else{
return "loginFail";
}
}
public String getUserListToString() {
return userListToString;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
} -
Taoharcos
aktív tag
Az alábbi lenne a problémám. Egy oldalon név - jelszó párost olvasok be, amit egy statikus ArrayList-ben tárolok. Amikor hozzáadom a listához (addUser), akkor a contains -el még ellenőrizni tudom, hogy a lista tartalmazza-e, utána a loginUser-nél a contains false lesz a már felvitt név - jelszó párossal. Az ArrayList pedig tartalmazza, amíg be nem zárom a programot, mert a toString-el kiíratom és ott van.
[ Szerkesztve ]
-
skoda12
aktív tag
Na a kovetkezo a helyzet. Elolvastam a kodot is, amit fentebb linkeltel es tobb problema is van.
Eloszor is ugyanarrol a threadrol irsz es olvasol adatbazist, amelyikrol GUI elemeket modositasz. A GUI tipikusan nem thread safe, a hozza tartozo elemeket (buttonok pl) a GUI threaden kell modositani. Ezen a threaden pedig nem kellene blokkolo muveleteket pl DB kezelest inditani, mert megakad az egesz felulet tole.
A masik, hogy a ResultSet-en azutan hivod meg a next() metodust miutan meghivtad a close() metodust (executeUpdate mar nem ad vissza uj ResultSetet igy a regi lezartat fogod hasznalni tovabb) es ezert kapsz "ResultSet not open. Operation 'next' not permitted." hibauzenetet.
A harmadik pedig, hogy konnyebb dolgod lenne, ha a string osszefuzogetes helyett PreparedStatementet hasznalnal, ha mar mindenkepp JDBC-vel kell megoldani a feladatot es nem hasznalhatsz valami ORM frameworkot.
[ Szerkesztve ]
-
artiny
őstag
Koszonom a valaszokat
most lefut
De viszont ezt irja amikor elakarom menteni az uj rekordot(elemet az adatbazisban):
Syntax error: Encountered ";"probaltam igy,hogy a kod vegen kihanyom a ..st+"','"+job+"');"; ) utáni ; jelet,erre ezt irta:
ResultSet not open. Operation 'next' not permitted.Melyikel lehet tovabb halladni,ha a st+"','"+job+"');"; a zarojel utan a ; kell oda vagy az nelkul es megkeresni hol blokkolodik a next ?
[ Szerkesztve ]
-
artiny
őstag
próbáltam ilyet...bar ez sem mukodik.
updateInt("ID", newID); // a newID deklaraltam,mivel nincs ilye..bar nem tudom h most kell e (hibat jelez)
String insertSql = "INSERT INTO Workers (ID,FIRST_NAME,LAST_NAME,JOB_TITLE) VALUES("+newID+","'"+firs+"'","'"+last+"',"'"+job+"'"); // unclosed character literal.t jeley
stmt.executeUpdate(insertSql);[ Szerkesztve ]
-
skoda12
aktív tag
-
artiny
őstag
helo.
ilyen hibat ir ki, az adatbazis szerkezete lathato a kepen es a hiba is amit kiir a netbeans,pirossal jelez a kodreszre....
http://i.imgur.com/XfOyBv2.png
megj.: az adatbazist ez alapjan lett: http://www.homeandlearn.co.uk/java/java_and_databases.html
[ Szerkesztve ]
-
TBG
senior tag
Tehát. Itt ez a remek kód.
try {
rs.moveToInsertRow();
rs.updateInt("ID", newID);
rs.updateString("First_Name", first);
rs.updateString("Last_Name", last);
rs.updateString("Job_Title", job);
rs.insertRow();
stmt.close();
rs.close();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM Workers";
rs = stmt.executeQuery(sql);Ehelyett inkább: (nem teljes és nem is ismerem a táblastruktúrát)
String insertSql = "INSERT INTO Workers(id,firstname) VALUES("+newID+","'"+firs+"'");
stmt.executeUpdate(insertSql);[ Szerkesztve ]
ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
artiny
őstag
Egy GUI-adatbazis kezelo turtorial szerint mentem ... a program lefut,mukodik csak egy bajom van vele. Ha uj sort akarok berakni az adatbazisba es miutan beraktam az uj elemet es elmentem lefagy a progi,nem tudok vissza menni,hogy ide - oda ugraljak az adatbazis elemei kozott.
Ha lezarom az X el a programot es ujbol elinditom akkor az uj elem ott van.Hogyan lehetne megoldani,hogy ne fagyon le a progi es vissza ugorjon oda,ahol mutassa az elemeket a textfield.
a program kod a save button -hoz:
TURTORIAL forras:
http://www.homeandlearn.co.uk/java/save_a_new_record.htmla program kod a save button -hoz:
http://pastie.org/7915215 -
peterszky
őstag
Java Web Starttal indított ablakot fel lehet úgy konfigurálni, hogy átméretezhető legyen?
What else you gonna do on a Saturday?
-
attiati
veterán
Java Eclipse feladat megoldására keresek jelentkezőt fizettségért cserébe. Lásd ---> hirdetés
[ Szerkesztve ]
-
fatal`
titán
válasz WonderCSabo #3762 üzenetére
Ennél már csak az if (i>0) return true else return false jobb
-
Jim-Y
veterán
Na igen, leírtam, mondom ez fasza, aztán visszaolvastam egyet, és leesett, hogy úgy mégjobb lenne,buuurn beírni már nem írtam be viszont
(#3754) TBG Köszi a választ, végül mindkettőt felhasználtam a programban, de a problémámhoz a konstruktorban objektum átadós módszert választottam most.
[ Szerkesztve ]
-
Karma
félisten
Ezt kene otvozni az elotted levo felkialtojeles megoldassal es szerintem megvan a nyertes Boolean valtozo invertalasanal teljesen felesleges a ?: operator.
Ha tippelnem kene, ebbol valamikor a klasszikus bortonor problema lesz (100 zart cella, az or eloszor mindegyiet kinyitja, aztan minden masodikat becsuk, aztan minden harmadikat atbillent... egeszen szazig). Mondjuk ertelme nincs sok, biztosan iskolai feladat.
[ Szerkesztve ]
“All nothings are not equal.”
-
Mukorka
addikt
válasz caindwan #3755 üzenetére
Az ajto változót át kéne adnod a függvénynek:
public boolean kulcsFordit(int ajto){
if(!bortonajtok[ajto]){
bortonajtok[ajto] = true;} //ha mást úgyse csinál az fv-d akkor itt kb még vizsgálni is felesleges...
return bortonajtok[ajto];
}//használni meg így lehet:
boolean fordit = kulcsFordit(4);
Szerintem ennek nem sok értelme van
(#3758) Athlon64+ : Erre gondolhatott, gyanús.
[ Szerkesztve ]
Mukor#2214 --- "Ezt nem én gondolom így, EZ EGY TÉNY!"
-
MrSealRD
veterán
válasz caindwan #3755 üzenetére
Attól függ mi a cél?
Feltételezem egy van egy börtönöd aminek egy bizonyos ajtaját ki akarod nyitni...
Én inkább egy ilyet írnék:
public void kulcsFordit(boolen[] bajtok){
for (i = 0; i<bajtok.length; i++) {
if(bajtok [i]== false){
bajtok(i) = true;
}
}
}Ez azt csinálja, hogy megkapja a bortonajtok tombjet, végig meg rajta és ami be van zárva azt kinyitja...
Így használhatod:
this.kulcsFordit(bortonajtok);Remélem nem írtam el semmit kicsit kapkodtam...de a kérdés, hogy mit szeretnél továbbra is áll.
[ Szerkesztve ]
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
caindwan
aktív tag
Ha van egy ilyen tömböm:
public boolean[] bortonajtok = {false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false,
false,false,false,false,false,false,false,false,false,false};
És ez a metódus:
public boolean kulcsFordit(){
if(bortonajtok[ajto] == false){
bortonajtok[ajto] = true;
return bortonajtok[ajto];
}
else{
bortonajtok[ajto] = false;
return bortonajtok[ajto];
}
/remélem jól vannak megírva/ Hogyan tudom használni a tömbön a metódust? -
TBG
senior tag
Szia!
Van egyszerű, ronda és bonyolultabb, szebb megoldás.
1. Egyszerű, ronda.
Az AppPanel osztályt átadod a *Form-oknak konstruktorban.2. Bonyolultabb, szebb
Csinálsz egy Listener interface-t, amit az AppPanel implementál és ott zárogatod be, ami kell.ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
caindwan
aktív tag
Köszönöm
-
caindwan
aktív tag
Heló!
Igazából még csak nemrég kezdtem az egészet. Egy ebookból tanulok és ott nem magyarázták meg a dolgot. Szóval van egy ilyen pl.:
public class AClass {
public int instanceInteger = 0;
public int instanceMethod() {
return instanceInteger;
}
public static int classInteger = 0;
public static int classMethod() {
return classInteger;
}
public static void main(String[] args) {
AClass anInstance = new AClass();
AClass anotherInstance = new Aclass();
anInstance.instanceInteger = 1;
anotherInstance.instanceInteger = 2;
System.out.println(anInstance.instanceMethod());
System.out.println(
anotherInstance.instanceMethod());
//System.out.println(instanceMethod()); //illegal
//System.out.println(instanceInteger); //illegal
AClass.classInteger = 7;
System.out.println(classMethod());
System.out.println(anInstance.classMethod());
anInstance.classInteger = 9;
System.out.println(anInstance.classMethod());
System.out.println(anotherInstance.classMethod());
}
}
Na ebben vannak olyanok a metódusban pl/anInstance.instanceInteger = 1;/ A kérdésem mit jelent az a pont? -
Jim-Y
veterán
Sziasztok
Nagyon alap kérdés következik
Van egy osztályom
AppPanel.java ami egy JPanel-ből származik.public AppPanel(Client client) {
this.client = client;
welcomeForm = new WelcomeForm();
contentForm = new ContentForm(this.client);
profileForm = new ProfileForm(this.client);
}Mindjárt visszatérek a fentire, de előtte:
- az AppPanel ami egy panel három részre van osztva, szemléltetésképp header, content, footer, mindhárom egy másik JPanel.Az AppPanel konstruktorában példányosítok 3 panelt amik a content szerepét töltik majd be. (welcomeForm, contentForm, profileForm).
A kérdés: az egyes panelekben, például a profileForm-ban szükségem lenne az AppPanel objektumára, hogy be tudjam zárni magát a Panelt, és másikat töltsek be a contentbe.
Jelenleg úgy néz ki az alkalmazás, hogy alaból a contentben a WelcomeForm van, majd ha belépek akkor azt lecserélem a contentForm-ra, illetve ha belépek a profilba akkor a profileForm töltődik be. Ha belépek a profilba, akkor ki szeretnék lépni onna, és azt szeretném, ha újra a contentForm lenne a contentben.
Ti ezt hogy csinálnátok meg? üdv
megj: a contentet jelenleg ugy cserélgetem, hogy a headerben vannak gombok (bejelntkezés -> lecseréli a welcomeForm-ot contentForm-ra, profil -> lecseréli a contentForm-ot profilForm-ra, de ha belépek a profilba, akkor jelenleg nincs gomb arra hogy visszalépjek, ezt a bezár gombot magában a panelben szeretném implementálni, nem a headerben.)
[ Szerkesztve ]
-
pakriksz
őstag
Directorysteammel listáznék mappákat, és egy bizonyos fájlt, csakhogy, ez a 2 dolog külön megy.
Ugye egy filter glob így néz ki egy fájlra: "fájlnév.kit" vagy "*.kit" de ilyenkor csak az ennek megfelelő fájlokat listázza. Ha nem adok hozzá filter globot akkor meg mindent listáz. Hogy tudnám a fájl szűréssel egyben a mappákat is listáztatni?Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
MrSealRD
veterán
Ja-ja. Tudom. Csak Java-ban menne a fejlesztés. Ezek a technológiák lettek megadva mint irányvonal...Most info gyűjtés van.
Köszi, az snmp api-t, nézem...Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
MrSealRD
veterán
Java + Nagios + snmp témakörben tud valaki ajánlani hasznos írásokat?
(A google-el majd később barátkozom. Ha előtte van fejlesztői ajánlás azt jobban preferálom)
Köszi.
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
pakriksz
őstag
Igen, éppen ezért akartam formázni. Nem véletlen hogy stringben volt
De erre láthatóan nincs automata megoldás, csak a replace. replace(" ", "%20");Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
TBG
senior tag
válasz pakriksz #3736 üzenetére
Tehát vegyük át még egyszer. URL NEM tartalmazhat space-t. A paraméterek nevei NEM tartalmazhatnak space-t, a paraméterek értékei igen, encode-olva. Ha pár apróságot figyelembe veszel, könnyebb lesz az életed.
Természetesen a szabványoktól el lehet térni, csak nem érdemes.
[ Szerkesztve ]
ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
pakriksz
őstag
ja hát igen tehát teljesen másra való mint amire kellene. (ez urlbeni paraméterküldésre való) nekem meg url formázás kellene.
Tehát normális url-t stringből a replace-el lehet megint csak összehozni
(url pedig tartalmazhat spacet csak nem space-ként kódolva, de nem is +-ként... De éppen erről volt szó, hogy stringből kéne egy url-t csinálni)
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
TBG
senior tag
válasz pakriksz #3733 üzenetére
Az URLEncoder teljesen jól működik. Ismerni kellene pár szabványt és nem anyázni.
http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4
Control names and values are escaped. Space characters are replaced by `+', and then reserved characters are escaped as described in [RFC1738],
Tehát a replaceAll() nem gányolás. A gányolás az, hogy space van az URL-ben.
http://www.w3schools.com/TAGS/ref_urlencode.asp
URLs can only be sent over the Internet using the ASCII character-set.
Since URLs often contain characters outside the ASCII set, the URL has to be converted into a valid ASCII format.
URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits.
URLs cannot contain spaces. URL encoding normally replaces a space with a + sign.
[ Szerkesztve ]
ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
modder
aktív tag
válasz pakriksz #3733 üzenetére
javaslom, hogy olvasd el, mire jó az URLEncoder osztály http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html
" for converting a String to the application/x-www-form-urlencoded MIME format"
-
pakriksz
őstag
String urlstring ="http://www.valami.com/u/mappa1/mappa2/ez egy spacesmappa/teszt.fil";
System.out.println(URLEncoder.encode(urlstring,"UTF-8"));Az eredménye pedig: http%3A%2F%2Fwww.valami.com%2Fu%2Fmappa1%2Fmappa2%2Fez+egy+spaces+mappa%2Fteszt.fil
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
tessék:
URLEncoder.encode(urlstring,"UTF-8")
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
Ismerem, ez mégtöbb hibát rak az url-be, azt is elrontja a mi jó volt, nem jó semmire.
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
TBG
senior tag
válasz WonderCSabo #3719 üzenetére
+1
ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
TBG
senior tag
válasz pakriksz #3723 üzenetére
Ez viszont vicces: az URL osztály nem kódolja rendesen URL-é a beadott a stringet. Openstreamnél simán elküldi a spacet pedig valami %20-al kéne helyettesítenie, aztán a szerver dobja is 400-as hibát rá.... Nagyon jó, még egy replace(" ","%20") gányolás....
http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html
ZTE Grand X powered by Intel® Atom™, Eladó: Panasonic HC-V10 HD+16GB SD kártya 25K.
-
Jim-Y
veterán
Sziasztok, a korábbi JMF-es kódomat felhasználva,plusz a java beépített controllerét csináltam egy ilyen mp3 lejátszót:
*bocs a minőség miatt, linuxon nem mükszik a screenshot nekemItt a hozzá tartozó kódrészlet.
public MusicPlayerImpl(){
super();
setLayout(new BorderLayout());
setBackground(Color.DARK_GRAY);
Format input1 = new AudioFormat(AudioFormat.MPEGLAYER3);
Format input2 = new AudioFormat(AudioFormat.MPEG);
Format output = new AudioFormat(AudioFormat.LINEAR);
PlugInManager.addPlugIn(
"com.sun.media.codec.audio.mp3.JavaDecoder",
new Format[]{input1, input2},
new Format[]{output},
PlugInManager.CODEC
);
try{
createPlayer();
}
catch(Exception ex){
ex.printStackTrace();
}
setVisible(true);
}
private void createPlayer() {
try {
player = Manager.createRealizedPlayer(new MediaLocator("http://xx.xx.xx.xx/public/akcent.mp3"));
Component controlsComponent = player.getControlPanelComponent();
if( controlsComponent != null ) {
add( controlsComponent, BorderLayout.NORTH );
}
}
catch ( Exception e ){
JOptionPane.showMessageDialog(this,"Invalid file or location", "Error loading file",JOptionPane.ERROR_MESSAGE);
}
}Itt a Component controlsComponent = player.getControlPanelComponent(); csinálja a fenti képen látható eredményt. A kérdésem csak annyi lenne, hogy ezt hogy lehet átdizájnolni kicsit? Háttér, előtér, esetleg ikonok hozzáadása/elvétele?
Így próbáltam:
Component controlsComponent = player.getControlPanelComponent();
if( controlsComponent != null ) {
controlsComponent.setPreferredSize(new Dimension(300,20));
controlsComponent.setBackground(Color.BLACK);
controlsComponent.setForeground(Color.WHITE);
controlsComponent.createImage(330, 20);
controlsComponent.repaint();
add( controlsComponent, BorderLayout.NORTH );
}De semmi eredmény :/
üdv
[ Szerkesztve ]
-
pakriksz
őstag
válasz WonderCSabo #3719 üzenetére
hát én ott még nem láttam normális paraméterezést...
Viszont ez a forkjoinpool már érdekes.Ez viszont vicces: az URL osztály nem kódolja rendesen URL-é a beadott a stringet. Openstreamnél simán elküldi a spacet pedig valami %20-al kéne helyettesítenie, aztán a szerver dobja is 400-as hibát rá.... Nagyon jó, még egy replace(" ","%20") gányolás....
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
Karma
félisten
válasz WonderCSabo #3721 üzenetére
Ez bőven lábbalhajtós példa így is, és az az aspektus nincs benne, hogy a workereknek valamilyen eredményt is kéne előállítania és azt feldolgozni az executorservice leállása után...
A Java 7-es ForkJoinPool már kezd hasonlítani.
Szerk.: Az előző két mondat még a szerkesztésed előttre válasz, de látom már látod mire is kérdeztem rá - erre a "vmi jó kis megoldásra"
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz WonderCSabo #3719 üzenetére
Hogyan lehet megoldani, hogy ne kézzel kelljen szálakra bontani a ciklust és összevárni az eredményt?
“All nothings are not equal.”
-
pakriksz
őstag
Így sikerült
private static String byteArrayToHex(byte[] a) {
StringBuilder sb = new StringBuilder();
for(byte b: a)
sb.append(String.format("%02x", b&0xff));
return sb.toString();
}Ez se valami jó, de működik.
Egyébként most megint eljutottam oda, hogy az egész programnak nem is, de néhány metódusnak jó lenne külön szálon futnia. Egy rakás fájlt kéne letölteni, és kicsomagolni for ciklusban. Ezek simán mehetnének párhuzamosan, de az agyhalál ahogy a java-ban ezt meg lehet oldani, kezdve azzal, hogy nem lehet csak úgy simán paraméterezni a threadben futó metódusokat.
Olyan egyszerű lenne mondjuk így hogy:threadedFor (Valami x: List<Valami>, Runtime.getRuntime().availableProcessors()) {
valamimetódus(x);
másikmetódus(x);
}és így a ciklusban lévő kód egyszerre párhuzamosan futna maximum annyi szálon ahány processzor van (vagy amennyit oda beírsz)
A runnable-vel szendvedés helyett... de ahogy látom a többi nyelvnél sincs annyira megkönnyítve a a párhuzamos futtatás, pedig már ideje lenne.
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
Jim-Y
veterán
válasz Superhun #3715 üzenetére
Oké, de annyi, hogy JMF még sajnos nem volt elég, mert
"jmf mp3 player java" queryre még annyi rossz találatot adott, vagy 5-6 példaprojektet hoztam létre mielőtt ez bevált volna, vagyis az, hogy beválik, még nem biztos, de már a projektembe beleinjektáltam, tudok start, stopolni, és localhostról, és szerverről is zenét lejátszani, szv jobb mint a semmi.Az igazi az lenne, ha valami javafx szerű kódot fel tudnék használni a projektben, mert most magamtól szedtem le play, pause, next stb ikonokat, és hát ez így mindennek nevezhető, csak szépnek, vagy profinak nem Meg pörgetősáv sincs :/
Azért köszönöm a tippet, mert végül csak lett a dologból valami
[ Szerkesztve ]
-
modder
aktív tag
válasz pakriksz #3710 üzenetére
akkor próbáld meg így:
byte[] md5StringToByte = new byte[md5String.size()/2];
for( int i = 2; i < md5String.size(); i+=2 ){
String stringByte = md5String.substring(i-2,i);
md5StringToByte[i/2 - 1] = Byte.parseByte(stringByte, 16);
}összehasonlítod az md5StringToByte tömböt az eredetivel. Nem vagyok benne biztos, hogy a stringben a helyiértékek ugyanabban a sorrendben követik egymást, mint a byte tömbben, mert most nem tudom végiggondolni
szerk.: ez eléggé pseudo kód, valszeg nem is a leggyorsabb, de kiindulási alapnak szerintem jó
[ Szerkesztve ]
-
pakriksz
őstag
nem, nincs kettőspont. (Érdekes standard lehet, mert úgy még sehol sem láttam, legtöbbször egyben van, max space van közöttük)
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
Jim-Y
veterán
Sziasztok, J2SE alatt szeretnék zenét lejátszani, mp3 lenne a legjobb, de igazából a kód egyszerűsége most magas prioritást élvez, tehát még ez sem feltétel.
Egyszer már kérdeztem itt a topikban, akkor annyit írtatok, hogy JMF, el is kezdtem ezen a vonalon keresni, ezt találtam: [link]
Ki is próbáltam egy külön projektben, működött is rendesen, tehát B tervnek jó lesz, de én nem szeretném a jelenlegi projektem átírni JavaFX-be, hanem szeretnék j2se vonalon maradni.
Nem tudjátok, hogy akkor mivel tudnék zenét lejátszani? üdv
-
pakriksz
őstag
válasz Peter Kiss #3705 üzenetére
de, csak köze nincs az eredményének a hash-hez. Bigintegernek van, csak ugye vágja a nullákat.
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
kb 2 órája azzal szenvedek, hogy egy string formában lévő md5 hashet összehasonlítsak egy byte tömb formában lévővel. Eddig sehogy sem sikerült.
byte tömböt BigIntegerbe rakva, nem jó mert a biginteger levágja az elejéről a nullákat.
Arrays.equals-nak soha semmi nem egyenlő.Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
artiny
őstag
orej.class ben a toXml metodus igy nez ki:
@SuppressWarnings("unchecked")
public String toXml() {
StringBuilder xml = new StringBuilder();
if ( this.emp!=null && !this.emp.isEmpty() ) {
for (Employee employee: this.emp) {
xml.append(employee.toXml());
}
}
return xml.toString();
}meg igy is jelzett a Employee.class ben a toXml nel a getBuffernál ,hogy:
StringBuffer sb = outWriter .getBuffer();
symbol: method getBuffer()
location: variable outWriter of type WriterTransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StringWriter outWriter = new StringWriter();
//Writer outWriter = new StringWriter(); ha ezt a sort lecserltem ami most folotte van sor akkkor eltunt a hiba a getBuffer nál,de mikor lefutattom a programot nem hoz letre semmit..
a (new File("xmldoc.xml")) - valami hasonlo kene neki,hogy megadni hova mit mentsen .....
StreamResult result = new StreamResult( outWriter );
t.transform(source, result);
StringBuffer sb = outWriter .getBuffer();
return sb.toString();
} catch (Exception e) {
System.out.println(e.getMessage());
}
return null;
}[ Szerkesztve ]
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AKCIÓ!!! GAMER PC: RYZEN 9 5900X + RTX 3060 12GB GDDR6! GARANCIA/SZÁMLA!!!
- BONTATLAN Új Iphone 16 PRO 128Gb - 1TB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- BONTATLAN Új iPhone 16 PRO MAX 256-512GGB Független 1év Apple GARANCIA Deák Térnél Azonnal Átvehető.
- Tamron SP 70-200mm f/2.8 Di VC USD G2 objektív ( Nikon )
- Azta! Yoga Slim 7 Prémium Ultrabook 14,5" -40% AMD Ryzen 5 7640S 16/512 RADEON 760M 2GB 2,9K OLED
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest