Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Datumbereik

CategorieŽn

AND

Onderwerpen

AND

Subforum

Topicstarter

Topicstatus

384 topics - Pagina 1 van 16

Netbeans Java probleem

04-08-2015 discussie 2
Hallo,

Voor een school project heb ik een spel moeten maken in Java met Netbeans, nu is het project af en in netbeans zelf werkt alles perfect en zijn er geen problemen.

Als ik na het builden de jar wil openen gebeurt er niets. Als ik dit doe in CMD met java -jar "bestand" komt er een error:quote:Exception in thread "main" java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source) at frogger_martijn_kuppens.inhoudPaneel.<init>(Frogger_Martijn_Kuppens.java:76) at frogger_martijn_kuppens.Frogger_Martijn_Kuppens.main(Frogger_Martijn_Kuppens.java:23)Dit lijkt me te komen doordat er een missing image is, in de code komt regel 76 ook overeen met:quote:speelveld = ImageIO.read(loader.getResourceAsStream("images/speelveld.png"));de achtergrond voor het speelveld inladen dus.

Maar de image zit wel degelijk in jar en heeft de juiste naam. Heeft iemand een idee hoe ik het kan oplossen?

Indien jullie nog info/code nodig hebben laat maar iets weten!

Mvg,
Martijn

De jar file:
https://drive.google.com/...kOWgwZlU/view?usp=sharing

[Java FXML] Sluiten afvangen in de controller

29-06-2015 discussie 2
Hallo allemaal,

Ik ben bezig om een klein applicatie te schrijven, maar ik zit met een probleem, waar naar veel Googlen, ik nog geen antwoord heb kunnen vinden. Ik zoek een manier om het afsluiten van de stage of scene af te kunnen vangen in de controller. Ik heb al wel oplossingen kunnen vinden om het afsluiten af te vangen in de main method, maar dat is al te laat voor wat ik wil doen.
Nu gaat het mij eigenlijk specifiek om het afsluiten via de X knop rechtsboven in je window. Ik heb ook een dedicated knop gemaakt in de menubalk en dan heb je volledige controle voordat je het programma afsluit dus dat is het probleem niet.

het zal ongetwijfeld heel simpele @Overide zijn of-zo, maar ik kan het zo 123 niet vinden. Kan iemand mij hiermee helpen?

[Android] Parse een decimal met JSoup

14-05-2015 discussie 2
(Pas op, dummie! ;p)

Hoi,

Ik werk (of ga werken, ik zit in de voorbereidingsfase) aan een app voor Android die automatisch je eind- en centraal examencijfers berekent op het moment dat de N-term uitkomt (11 juni, 8 uur 's ochtends). Hiervoor wil ik Eclipse of Xamarin gebruiken (Wat raden jullie aan? Xamarin lijkt me makkelijker maar Eclipse heeft meer tutorals). Ik had het als volgt in gedachten:

Klik voor minder klein.Voor de URL's gebruik ik die van vorig jaar en verander ik 2014 in 2015 Leerlingen krijgen (bij ons op school iig wel) de scores te horen voordat de N-Term bekend is gemaakt Roodomrande blokken zijn dingen waarvan ik verwacht dat ik erover ga struikelen. Geelomrande blokken zijn dingen die ik moeilijk vind Groenomrande blokken zijn dingen waarvan ik verwacht dat ze makkelijk zijn Ik heb geen idee hoe ik normering toe zou moeten passen, ik zal uit een lijst met variables moeten detecteren hoeveel daarvan onder de 6 zijn, daarnaast moet ik het gemiddelde van alle eindcijfers kunnen berekenen, maar hierin alleen de cijfers in het pakket meenemen...Tot zover de algemene boel...

Het grootste probleem is het ophalen van de N-term. De webpagina zier er als volgt uit (Natuurkunde tijdvak I 2014):
HTML:
465 <i>N-term</i>: 0,4<br />
Deze zit op regel 465, net als bij scheikunde (heb ik gechekt) maar ik ga er denk ik niet op rekenen dat dat voor dit jaar ook het geval zal zijn en dat ik er dus vanuit kan gaan dat de parser mag gaan zoeken op regel 465.

Het grootste probleem is dat ik geen idee heb hoe ik die parser dan wťl zou moeten instellen (ik heb nog nooit met een parser gewerkt). Hebben jullie misschien een voorbeeld/hint hoe ik de decimal van de pagina kan plukken met behulp van JSoup? (Of een andere parser)

Thanks in advance!

[JAVA] Typesafe Queries: do or don't?

13-05-2015 discussie 4
Deze week was ik aangenaam verrast door het interessante artikel over sql queries op de frontpage.

Het schrijven van goede queries is een kunst en verdient inderdaad de nodige aandacht. Maar toch blijf ik me erover verbazen dat velen toch blijven vasthouden aan pure sql of jpql (namedqueries) (toch in de code die ik bekijk, zowel online als van directe collega's) , terwijl er nu mooie (imo) en typesafe oplossingen zijn.

Zo gebruik ik al enige tijd Spring Data Jpa in combinatie met QueryDSL.Spring data jpa maakt je DAO repositories aan, dit louter aan de hand van een simpele interface die je definieerd (extend de Spring interface met een generics verwijzing naar de entity class die je wil gebruiken). Vervolgens maakt spring deze DAO automatisch aan en zijn default CRUD methodes & paging aanwezig. QueryDSL maakt met behulp van classpathscanning (at compiletime) static classes aan van je entities. Deze bevatten al de informatie ivm de persistance (tabellen, kolommen,..). Deze kan je dan gebruiken om heel leesbaar (domain specific language) je queries op te bouwen.Voorbeeld:
code:
1 2 3 4 5 6 7 //Spring data jpa repository bean (implementation constructed by spring from provided interface) @Inject PersonRepository personRepository; public List<Person> getPersonsLivingIn(Country country, Set<Postcode> postcodes){ this.personRepository.findAll(QPerson.person.address().postcode.in(postcodes).and(QPerson.person.address().country.eq(country))); }
Address is in dit voorbeeld een andere tabel, dus de .address() is impliciet een join .

Dit laat me ook toe om makkelijk aan "paging" te doen, om hapbare lijsten aan de UI voor te schotelen.
code:
1 2 3 4 5 6 7 8 9 10 11 { int currentPage = 0; int pageSize = 20; PageRequest firstPageRequest = new PageRequest(currentPage, PageSize, new Sort(Sort.Direction.ASC, "lastName")); Page<Person> firstTwentyPersons = this.getAllPersons(firstPageRequest, new Country("NL")); } public Page<Person> getAllPersons(PageRequest pageRequest, Country country){ this.personRepository.findAll(QPerson.person.address().country.eq(country), pageRequest); }
Gebruiken jullie gelijkaardige, of misschien zelfs betere frameworks die ik niet ken? Of blijf je liever ver van deze aanpak weg? Waarom dan wel? Zijn er nadelen die ik over het hoofd zie? Of maak ik het allemaal moeilijker dan het zou moeten zijn?
Wat zijn jullie bedenkingen hierover?

[JDBC] Verbinding met exotische database

10-05-2015 discussie 7
Ik heb hier een exotsche door een extern bedrijf ooit ontwikkelde database die ik graag zou willen benaderen met een willekeurige management tool, echter heb ik wat problemen om de juiste driver class te achter halen.

De database is actief draaiende onder een Java omgeving, maar ik kan niet specifiek achter halen welke driver class ik nu nodig heb. Kan ik dit door middel van een debug optie achterhalen?
(De software welke communiceert met de database functioneert immers, en kan ik gebruiken.)
Ik weet wel zeker wat de driver locatie is, maar ik heb een kijkje in genomen in de .jar, en deze is toch wel erg groot om even wat te proberen.

Als ik hier een debug optie voor heb kan ik dan ook de JDBC url achterhalen? Ik heb wel gewoon username en password voor de database dat is het probleem niet, echter wel de manier om verbinding te maken...

Helaas schiet de bijgeleverde documentatie wat te kort, voor de andere databases die de applicatie gebruikt is wel van alles voor handen.

[FC21/YUM] Conditionele Repository voor Java

30-04-2015 discussie 12
Op mijn thuisserver draai ik momenteel Fedora Core 21 (Server).
Hierop draai ik een Minecraft server welke afhankelijk is van Java 1.7.x.

Omdat FC21 standaard met Java 8 komt, heb ik handmatig de Java 1.7 RPM's van FC20 gedownload en dmv yum localinstall handmatig geinstalleerd.

Daarna heb ik met yum het package op hold gezet.

Groot nadeel hiervan is dat ik geen updates voor java meer ontvang, omdat zodra ik het lock er vanaf haal, FC21 wil upgraden naar de java 1.8 packages die in de FC21 repo zitten.

Is het mogelijk om een Yum repository te maken die ik voor speciale packages meer voorrang geef (of zelfs helemaal afsluit) voor specifieke keywords?

Iets als:

[repo]
url=fc20/url
keyword=*java*, *openjdk*

Of heeft iemand anders een goede manier om Java 7 (inclusief updates) te forceren op FC21?

[Android] generieke manier opvangen geen-internet

11-01-2015 discussie 1
Hey daar!
Ik werk aan een android-app die in elk activity een werkende verbinding met een server moet hebben. Ik maak voor het verkeer gebruik van Volley, dus heb een class VolleyRequest die Application extends.
De API die ik gebruik heeft een .../api/hello endpoint die gewoon een body terugstuurt met status 200.

Ik ben nu op zoek naar de netste manier om bij het laden van elke activity te kijken of er een verbinding is met de api-server. Als er geen verbinding is wordt de launch-activity geopend met een error. Van dat laatste weet ik wel hoe dat gaat, maar om overbodige code te voorkomen wil ik dus iets generieks hebben.

Is het netjes om in de (singleton) class VolleyRequest een methode te maken die bij het mislukken van de test-request de launch-activity opent met een error message?

Casten van objecten

10-01-2015 discussie 5
Ik heb al een tijdje programmeren links laten liggen en laatst weer opgepakt.
Nu loop ik vast bij het kunnen begrijpen van casten.

Stel: een superklasse Winkel met de subklasse Supermarkt

Winkel winkel = new Winkel();
Supermarkt jumbo = new Supermarkt();

jumbo = (Supermarkt)winkel;

Wat is hierboven nu gebeurd? Als ik het goed begrijp is het object "winkel" gecast naar een Supermarkt object als variabele "jumbo". Maar is "jumbo" nu ook een echt een normaal Supermarkt object, of bevat dit object iets extra's aangezien hij gecast is vanaf een Winkel object?


Wat hieronder staat, doet dit hetzelfde als hierboven beschreven?

Winkel C1000 = new Supermarkt();


Alvast bedankt,
-Robin

[JAVA] Reverse engineering Bitwise

04-01-2015 discussie 15
Hallo,

Ik ben momenteel bezig met het reverse engineering van een stuk code.
Ik wil de volgende functie omdraaien.
Java:
1 2 3 4 5 6 7 private static int f(int x) { x &= 65535; x = 0xFFFF & k43[(x >> 8 & 0xFF)] << 8 | k21[(x & 0xFF)]; return (x << 5 & 0xFFFF | x >> 11) & 0xFFFF; }
Ik heb bovenstaand stuk zelf uitgerekend.
De input van x=9553 en de uitkomst is 31572 (gecheckt met de debug mode).
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 f(x=9553) { x &= 65535; x = 0xFFFF & k43[(x >> 8 & 0xFF)] << 8 | k21[(x & 0xFF)]; // x = 65535 & K43[(x >> 8 & 255)] << 8 | K21[(x & 255)]; // x = 65535 & K43[37] << 8 | K21[81]; // x = 65535 & 163 << 8 | 218; // x = 65535 & 41728 | 218 // x = 65535 & 41946 return (x << 5 & 0xFFFF | x >> 11) & 0xFFFF; //1 return (41946 << 5 & 65535 | 41946 >> 11) & 65535; //2 return (1342272 & 65535 | 20) & 65535; //3 return (31552 | 20) & 65535; //4 return 31572 & 65535; //5 return 31572 }
Wat ik nu wil is dus van de waarde 31572 naar 9553 terug rekenen.

Wat heb ik tot nu toe:
Java:
1 2 3 4 5 6 7 8 9 private static int fr(int x) { x ^= 20; System.out.println("x is now: " +x); // x= 31552 wat overeenkomt met return 3 x |= ~65535; System.out.println("x zou nu 1342272 moeten zijn."); return x; }
Waar ik tegen aanloop is het volgende hoe kan ik van de waarde 31552 weer naar de waarde 1342272 terwijl ik alleen een tweede waarde weet van 65535
code:
1 2 3 4 5 6 7 8 9 10 11 Functie f 00000000000101000111101101000000 1342272 00000000000000001111111111111111 65535 -------------------------------- AND (&) 00000000000000000111101101000000 31552 Functie fr ?? 00000000000000000111101101000000 31552 00000000000000001111111111111111 65535 ================================ ?????? 00000000000101000111101101000000 1342272
Dit is maar een klein stukje van de totale code die ik aan het omzetten ben, wat het normale script doet ik het volgende.

Het normale script is een controle van een login methode.
Je krijgt een 4 letterige naam [hoofdletters] en een Id [4-6 cijfers] en Pin code [4 cijfers].
In die combinatie van [NAME], [ID] en [PIN] zit een geldigheidsdatum verwerkt bijvoorbeeld 12/2014
In de Id+Pin code zit ook de naam verwerkt. Hij checkt dus ook of de [ID]+[PIN] combinatie geldig is met de ingegeven [NAME]

Bijvoorbeeld de naam BERO.
Het bijbehorende id is: 180093
De bijbehorende pin is: 8770
Deze code is geldig tot 12/2014

Wat het totale script doet is hij checkt of de combinatie [ID] en [PIN] de naam BERO kunnen creŽren en of de geldigheidsdatum hoger is dan de huidige datum.

Ik wil uiteindelijk zelf code's kunnen genereren zodat ik deze inlog methode ook kan gebruiken.

Ik zal het totaal plaatje even erbij plakken, misschien is het nodig om bovenstaande vraag te kunnen beantwoorden.
Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 import java.io.Serializable; import java.util.ArrayList; import java.util.GregorianCalendar; public class User implements Serializable { private static final long serialVersionUID = 1L; private static int[] K4 = { 7, 13, 10, 1, 0, 8, 9, 15, 14, 4, 6, 12, 11, 2, 5, 3 }; private static int[] K3 = { 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11 }; private static int[] K2 = { 14, 11, 4, 12, 6, 13, 15, 10, 2, 3, 8, 1, 0, 7, 5, 9 }; private static int[] K1 = { 4, 10, 9, 2, 13, 8, 0, 14, 6, 11, 1, 12, 7, 15, 5, 3 }; private static int[] k43 = new int[256]; private static int[] k21 = new int[256]; private static int[] SDKEY = { 83, 75, 73, 68, 65, 84, 65, 0 }; private static int[] SDKEY1 = { 96, 87, 84, 78, 74, 92, 72, 0 }; public static void main(String[] args) { System.out.println("Login: 2014"); loginAsServiceTechnician("BERO", 180093, 8750); /* Waar ik uiteindelijk heen wil * generateServiceTechnicain("BERO", "12", "2014"); */ } private static long ghostdecrypt(long in, int[] key) { for (int i = 0; i < 256; i++) { k43[i] = ((K4[(i >> 4)] << 4 | K3[(i & 0xF)]) & 0xFFFF); k21[i] = ((K2[(i >> 4)] << 4 | K1[(i & 0xF)]) & 0xFFFF); } for (int i = 0; i < 7; i++) { SDKEY1[i] = (SDKEY1[i] - 13 + i); } for (int i = 0; i < 8; i++) { SDKEY[i] = ((SDKEY[i] ^ SDKEY1[(7 - i)]) & 0xFFFF); } int n2 = (int)(in >> 16 & 0xFFFF); int n1 = (int)(in & 0xFFFF); int f = f(n1 + key[0]); n2 ^= 0xFFFF & f; n1 ^= 0xFFFF & f(n2 + key[1]); n2 ^= 0xFFFF & f(n1 + key[2]); n1 ^= 0xFFFF & f(n2 + key[3]); n2 ^= 0xFFFF & f(n1 + key[4]); n1 ^= 0xFFFF & f(n2 + key[5]); n2 ^= 0xFFFF & f(n1 + key[6]); n1 ^= 0xFFFF & f(n2 + key[7]); n2 ^= 0xFFFF & f(n1 + key[7]); n1 ^= 0xFFFF & f(n2 + key[6]); n2 ^= 0xFFFF & f(n1 + key[5]); n1 ^= 0xFFFF & f(n2 + key[4]); n2 ^= 0xFFFF & f(n1 + key[3]); n1 ^= 0xFFFF & f(n2 + key[2]); n2 ^= 0xFFFF & f(n1 + key[1]); n1 ^= 0xFFFF & f(n2 + key[0]); K4 = new int[] { 7, 13, 10, 1, 0, 8, 9, 15, 14, 4, 6, 12, 11, 2, 5, 3 }; K3 = new int[] { 5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11 }; K2 = new int[] { 14, 11, 4, 12, 6, 13, 15, 10, 2, 3, 8, 1, 0, 7, 5, 9 }; K1 = new int[] { 4, 10, 9, 2, 13, 8, 0, 14, 6, 11, 1, 12, 7, 15, 5, 3 }; k43 = new int[256]; k21 = new int[256]; SDKEY = new int[] { 83, 75, 73, 68, 65, 84, 65, 0 }; SDKEY1 = new int[] { 96, 87, 84, 78, 74, 92, 72, 0 }; return (n1 << 16) + n2; } private static int f(int x) { x &= 65535; x = 0xFFFF & k43[(x >> 8 & 0xFF)] << 8 | k21[(x & 0xFF)]; System.out.println(((x << 5 & 0xFFFF | x >> 11) & 0xFFFF)); return (x << 5 & 0xFFFF | x >> 11) & 0xFFFF; } public static boolean loginAsServiceTechnician(String name, int id, int pin) { long data = ghostdecrypt(id * 10000 + pin, SDKEY); long months = data >> 20 & 0x1FF; char[] calculatedNameChars = new char[4]; for (int i = 3; i >= 0; i--) { calculatedNameChars[i] = ((char)(int)((data & 0x1F) + 65L)); data >>= 5; } String calculatedname = new String(calculatedNameChars); GregorianCalendar calendar = new GregorianCalendar(); long monthsNow = calendar.get(1) * 12 + calendar.get(2) + 1; long validUntilMonth = 23929L + months; if (validUntilMonth <= monthsNow) { System.out.println("Authorization has Expired"); return false; } if (name.equalsIgnoreCase(calculatedname)) { System.out.println("Welcome "+name); return true; } System.out.println("Incorrect PIN"); return false; } }
Kan iemand mij helpen om deze hindernis over te steken.

[Android] afvangen faulty xml (& ipv &)

28-12-2014 discussie 6
Hey mensen!
Ik ben een Android app aan het bouwen waarbij ik XML moet parsen die wordt gegenereerd door een programma op een webserver. Echter, de webserver genereert gegarandeerd geen correcte XML en ik kan het programma niet aanpassen ...

De fout: bijzondere characters worden niet ge-escaped door de webserver:
<entity1>
____<entity2>text & text</entity2>
</entity1>
Het &-teken moet natuurlijk &amp; zijn of een unicode alternatief

Ik wil de gebruiker er niets van laten merken, dus moet de fout opgevangen worden. Ik dacht eraan om van tevoren in de string alle bijzondere characters op te zoeken en deze te vervangen door juiste equivalenten. Ik weet niet precies met welke zoektermen ik moet gooien om te ontdekken hoe dat gedaan moet worden in Android, dus vraag daarbij jullie hulp.

Misschien hebben jullie zelfs een beter alternatief

Update: ik ben inmiddels weer verder aan het zoeken. Dit ga ik waarschijnlijk gebruiken:
xmlString = xmlString.replace('&','&');
Kan dit trouwens niet zo: xmlString = xmlString.replace('&','&').replace('<','<').replace('>','&rt;'); ?

[Java] Applicatie plugins & library packing (maven shading?)

19-11-2014 discussie 5
Beste Medetweakers.

Ik ben op het moment bezig met een Java HTTP webserver hobbyproject. Ik probeer een applicatie te maken die op een vergelijkbare manier plugins laad zoals Bukkit dit doet. Nu heb ik vanalles gelezen over het toevoegen van libraries aan plugin jars, en over dat dat wel is fout kan gaan op het moment dat twee plugins dezelfde libraries packagen.

Ik heb m'n javaproject laatst geconverteerd naar een maven project i.v.m. dependencies die gezellig allemaal via maven werken. Alleen snap ik maven voor nog geen halve meter. Dependencies toevoegen aan pom.xml lukt nog, maar in de tutorials die ik gevonden heb zie ik ook dingen staan als "maven plugins" en "build goals" (helaas zonder uitleg die me helpt te begrijpen wat het nou doet).

Ik werk met de Eclipse Maven m2e plugin en wil het liefst niet de commandline in duiken.

wanneer ik zoek met termen als "java plugin library shading" of "java plugin maven shading" vind ik alles behalve wat ik zoek. Ik heb op een vergelijkbare (iets meer samengevatte) manier ook mijn vraag achter gelaten op stackoverflow alleen daar wordt geen gehoor aan gegeven.
Ik heb het ook bij de docenten van mijn studie geprobeert te vragen, alleen zijn dat meer C# fanaten en schiet ik er weinig mee op.

Wat al lukt:
- het draaien van de server;
- het laden van jars (Classloader) zonder 3rd party libraries;
- het exporteren van plugins zonder dependencies ( project -> export... -> jar file );
- het toevoegen van dependencies via maven;

Wat nog niet lukt:
- maven m'n project laten compilen;
- het exporteren van plugins met dependencies (zonder er een runnable jar van te maken);


TL;DR;
Zou iemand mij een duwtje in de goede richting kunnen geven met hoe ik maven m'n project kan laten compilen en hoe ik maven shading moet toepassen. Of misschien is er een andere, simpelere, oplossing voor mijn probleem?

Voor wie geÔnteresseerd is in waarom ik hieraan begonnen ben. Ik heb een rothekel aan PHP, gebruik veel liever java. Maar Apache Tomcat is me veelste veel gedoe.

(feedback gevraagd) Processing 2 - Java

15-09-2014 discussie 2
Beste allen,

Ik zit amper op dit forum, maar kom nu toch even langs om iets te vragen.
Ik ben namelijk enkele weken geleden gestart met een programmeercursus JAVA en in deze cursus wordt er gebruik gemaak van het programma: "Processing 2". (later gaan we eclipse, maar dat terzijde) Ik ben op dit moment een programmeer-noob en kan dus wel enige feedback gebruiken.

Het doel in een bepaalde opdracht is op een soort BMI meter te maken die uiteraard functioneert.
Nu ben ik zover dat de applicatie 100% werkt, maar zou graag wat feedback willen op de geschreven code. Ik ben namelijk benieuwd of:

- mijn code beter kan
- mijn code kleiner kan
- mijn code simpeler kan
- mijn code fouten bevat
- mijn code efficiŽnter gebruik kan maken van andere functies


Voor de mensen die mij graag een handje willen helpen, vraag ik het volgende:

; Via de link zit een zip bestandje waarin code zit gemaakt in processing. Dit zijn sketches en kan dus zo als geopend worden binnen processing. Graag vraag ik jullie dus om dit bestandje te downloaden en te openen binnen processing om te kijken naar de bovenstaande punten.

Het bestandje is hieronder te downloaden. Deze link gaat via bit.ly naar mijn Dropbox:
*snip*

[JAVA] GPS Tracker met binary formaat decoderen (Traccar)

31-07-2014 discussie 3
Ik werk regelmatig met GPS trackers die via TCP/UDP hun data naar mijn server sturen waar een tooltje op draait met als basis Traccar: http://traccar.org.

Normaal sturen deze apparaten een String, soms in HEX formaat maar meestal gewoon een plain string waar de coordinaten, IMEI etc. van een GPS staan. Nu heb ik echter een apparaatje die zijn gegevens via binary opstuurt.

Ik heb een klein voorbeeldje van de fabrikant ontvangen, maar ze willen me geloof ik niet echt een code sample geven van hoe ik het beste de gegevens kan omzetten naar een String.
Ik kan helaas ook niet teveel informatie over het apparaat weggeven, maar het is een vrij onbekend ding (anders had ik wel wat op Google gevonden natuurlijk).

Hier staat in ieder geval een klein stukje informatie uit hun documentatie, om het IMEI nummer uit de HEX string die ik ontvang te toveren, het is een tracker uit Litouwen dus het Engels is een beetje brak.

packed arrived through UDP or TCP
"085a629c834601008600a59b41c760ed5c0bc0d39204201909de41f95a5742001c72e400000000008000ed030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000416766ed5c0bc0d39204201909de41f95a5742001b72e400000000008000ee030101010903570b003000000040110583040d001200001f0c1a03c605004d690b0000a0"

08 5a 62 9c 83 46 01 00 (IMEI 0x146839c625a08 = 359006055062024)

86 00 (packet len 0x86 = 134 bytes)
a5 (Service FlashStack)
9b (Service 0xA5 confirmation key)


###(Start of structure #1 in packet)
41 (structure len 65 bytes)
c7 60 ed 5c (DT=7 Time=0x5ced60c*0x02+0x47798280=0x53172E98=1394028184= "GMT: Wed, 05 Mar 2014 14:03:04 GMT")
##(start of parsing detected DT=7 structure Masks)
0b c0 (Mask1 0xC00B = 0b1100000000001011 )
d3 92 (Mask2,becasue most significant bit in Mask1 set, Mask2 present 0x92d3 = 1001001011010011)
04 20 (Mask3,becasue most significant bit in Mask2 set, Mask3 present 0x2004 = 0010000000000100)

Mijn vraag is nu dus eigenlijk, om te beginnen, hoe komen zij van:
08 5a 62 9c 83 46 01 00 naar 359006055062024

Volgens mij is het wel vrij basic programmeren maar ik kom er niet uit

[Java] Buttons aanmaken met behulp van array

08-05-2014 discussie 16
Ik ben bezig met het maken van meerdere (35) buttons met elk een reactie.

Nu heb ik dit 35 keer
Java:
1
2
3
4
5
6
           // code per button
            JButton buttons1 = new JButton(); 
            buttons1.setText("buttons1");
            frame.add(buttons1);
            buttons1.setPreferredSize(new Dimension(50, 50));
            buttons1.setBackground(Color.white);
Ik wil het graag zo:
Java:
1
2
3
4
5
6
7
8
        String[] buttons = {"button1", "button2", "button3"};
        for(int i=0; i < 3; i++) { 
            JButton buttons[i] = new JButton(); 
            frame.add(buttons[i]);
            buttons[i].setText(buttons[i]);
            buttons[i].setPreferredSize(new Dimension(50, 50));
            buttons[i].setBackground(Color.white);
        }
Maar, wanneer ik de loop run, geeft hij "no suitable method found"

Als ik enkel de text uit de array haal met de setText method:
Java:
1
2
3
4
5
6
7
8
        String[] buttons = {"button1", "button2", "button3"};
        for(int i=0; i < 3; i++) { 
            JButton button = new JButton(); 
            frame.add(buttons[i]);
            button.setText(buttons[i]);
            button.setPreferredSize(new Dimension(50, 50));
            button.setBackground(Color.white);
        }
dan krijg ik wel meerdere buttons met een andere tekst, maar ik kan geen specifieke actionlisteners aan de button hangen. Ze heten immers allemaal 'button'.

[Android] NoClassDefFoundErr bij refereren naar Java project

23-02-2014 discussie 4
De situatie
In Eclipse heb ik de volgende projecten:JavaProject1, met diverse *.jar libraries JavaProject2, met diverse *.jar libraries AndroidProject (min SDK 8, target SDK 19)Verder maakt JavaProject1 gebruik van JavaProject2; dit project staan daarom op het build path van JavaProject1.
Nu wil ik wil JavaProject1 in mijn AndroidProject gebruiken. Ik heb daarom JavaProject1 op het build path van mijn AndroidProject gezet.

Ik gebruik Eclipse Kepler 4.3 en de Android SDK is volledig up to date. Verder staat de compiler voor alle projecten in Eclipse ingesteld op Java 6 (1.6).

Het probleem
De source geeft geen errors, echter krijg ik bij het runnen, op het moment dat JavaProject1 wordt aangeroepen telkens NoClassDefFoundError's.
Via Google vond ik dat instelingen met het build Path van de projecten het probleem kan verhelpen, en ik heb diverse configuraties met het build path e.d. geprobeerd. Uiteindelijk krijg ik e.e.a. maar niet aan de praat, terwijl het in mijn ogen mogelijk moet zijn. Wie kan me verder helpen?

Er bestaan geen (vergelijkbare) Android libraries van de JavaProjecten, dus het gebruik van deze java projecten is mijn enige optie.

[Android] ProgressDialog toont niet meer

26-07-2013 discussie 18
Ik ben momenteel bezig met het debuggen van een Androidapplicatie die ik zo'n anderhalf jaar geleden voor het laatst aangeraakt heb. In die tijd heeft er ook niemand anders aan gewerkt, maar blijkbaar is er wel iets stuk gegaan: de progress dialog die ik ingebouwd had in de downloader class die ik gebouwd heb wil niet meer tonen.

Ik heb een class DownloadTask die is afgeleid van een class CommunicationTask (er is ook een UploadTask, vandaar). CommunicationTask is gedefinieerd als volgt:
Java:
1
public abstract class CommunicationTask extends AsyncTask<Void, Integer, CommunicationTask> implements Comparable<CommunicationTask> { ... }
Zoals je kan zien heb ik dus gewoon zoals het hoort een AsyncTask gemaakt zoals voor progressbars gebruikelijk is.

Mijn onProgressUpdate-method in de DownloadTask ziet er als volgt uit:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
protected void onProgressUpdate(Integer... progress)
{
    MyApp app = MyApp.getInstance();  // Deze naamgeving even aangepast, reclame leek me niet nodig

    if (callingActivity != null && (dialog == null || !dialog.isShowing()))
    {
        dialog = new ProgressDialog(callingActivity);
        dialog.setTitle(app.getString(com.mycompany.android.myapp.R.string.dialog_downloading_title));
        dialog.setMessage(description);
        if (fileSize > -1)
        {
            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            dialog.setMax(fileSize);
        }
        else
            dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setProgress(0);
        dialog.show();
    }
    if (dialog != null)
    {
        int p = progress[0];
        dialog.setProgress(p);
        if (p >= fileSize)
            dialog.dismiss();
    }
}
Simpelweg debuggen toont aan dat de method netjes gerund wordt. Bij de eerste keer kom ik netjes binnen die eerste if op regel 5 en maakt hij zoals verwacht de dialog aan. Ook komt hij aan bij de dialog.show() op regel 18 en voert deze succesvol uit. Echter wordt de dialog niet getoond. De tweede if op regel 20 wordt ook netjes binnengetreden, maar omdat de progress nog 0 is wordt de dialog niet gedismisst. Dit heb ik uiteraard gecheckt. Bij de eerstvolgende call naar de method is alle data al binnen (het is maar een kleine file). De eerste if treden we niet meer binnen omdat dialog niet meer null is. De tweede wel, en omdat progress nu groter of gelijk aan de filesize is wordt de dialog (die tot dan toe nooit in beeld is geweest) weer gedismisst.

Het vreemde is dus dat dit anderhalf jaar geleden nog gewoon werkte. Het lijkt alsof een van de Android-updates sindsdien iets gesloopt heeft, maar ik zou niet weten wat dat kan zijn. Heeft iemand enig idee?

[Java] Hibernate tools

01-07-2013 discussie 2
Na 5 jaar zonder programmeren, heb ik besloten om er terug in te duiken.

Bij mijn vorige werkgever hadden we een in-house framework dat (onder andere) voor persistentie zorgde, compleet met caching. Dit werkte heel fatsoenlijk en was uiteindelijk voor de "eindprogrammeerder" heel gebruiksvriendelijk.

Nu zijn we een paar jaar verder, en ik kon me eigenlijk niet voorstellen dat zoiets gelijkaardigs niet in open-source bestaat, zodoende kwam ik uit bij Hibernate.

Ik heb nu een paar tutorials gelezen (nog niet echt gedaan), maar de meeste gaan uit van een voorbestaande database die je importeert en zodoende configfiles genereert, ofwel handgeschreven config-files.

Bij die vorige werkgever hadden we een soort grafische tool waar je je business objects intypte en die aan elkaar linkte. Inheritance werd ook ondersteund, je kon dus een object kwijt in een tabel die nog andere velden had, maar die niet gebruikt werden voor dat specifiek object maar misschien wel voor een subclass.

Die tool genereerde dan alle DB-generation statements, de nodige config-files, en meteen ook alle business object classes in Java.

Nu is mijn vraag: bestaat zo een tool ook in Open Source? Of desnoods een betaalde tool? Ik zag wel dat er "hibernate tools" bestaan van JBoss, maar dat draait enkel op Eclipse. Ik zoek liever iets stand-alone of iets dat draait op IntelliJ Idea.

interface expected here

10-06-2013 discussie 6
Het is uiteindelijk de bedoeling dat dit programma een lijst doorloopt, daaruit de snelste tijd haalt en de naam die er bij hoort maar ik stuit nu al op een ander probleem: volgens het java for dummies boek moet je
[throws FileNotFoundException] gebruiken omdat het programma anders Łberhaupt niks doet maar hij geeft een error "interface expected here". Op internet kan ik wel deze error vinden maar niet in dit verband dus daarom vraag ik het hier.

Daarnaast wil de [System.out.println(time);] ook niet werken, een error bij de "." (misplaced constructs) en bij de "time" ( VariableDeclaratorId expected after this token).
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Marathonb {

    public static void main(String args[]) {
      
        throws FileNotFoundException {
        
            Scanner diskScanner = new Scanner(new File("marathonn.txt")),
            
            time = diskScanner.nextInt();
            
            System.out.println(time);
            
            
        }
        }
      
      }

[Java] Delen door 0 geeft geen fout

14-04-2013 discussie 30
Ik heb een programma geschreven over de Gauss Jordan Eliminatie van matrices, daarbij heb ik de methods
try en catch geimplementeerd. Als er dus iets fout gaat doet hij alsnog wat ik wil in plaats van er mee stoppen.
Maar, in mijn code staan een aantal breuken. Wanneer er gedeeld wordt door 0 doet hij het gewoon nog... Hoe kan dit?

Dit is de code:
Java: GaussJordan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import java.util.Scanner;
public class clean {
    public static void main(String[] args){
        
        double a,b,c,d,e,f,g,h,i,j,k,l;
        int x=1;
        int counter=1;
        String MRX[][]={{"a","b","c","d"},{"e","f","g","h"},{"i","j","k","l"}};
    
        System.out.println("Standard matrix layout: ");
        display(MRX);
        System.out.println();
do{    
    try{
        System.out.println("Enter the values in alfabetical order ("+counter+")");
        Scanner input = new Scanner(System.in);
    
        //Setting the values
        System.out.print("a = ");
        a = input.nextDouble();
        
        System.out.print("b = ");
        b = input.nextDouble();
        
        System.out.print("c = ");
        c  = input.nextDouble();
        
        System.out.print("d = ");
        d = input.nextDouble();
        
        System.out.print("e = ");
        e = input.nextDouble();
        
        System.out.print("f = ");
        f = input.nextDouble();
        
        System.out.print("g = ");
        g = input.nextDouble();
        
        System.out.print("h = ");
        h = input.nextDouble();
        
        System.out.print("i = ");
        i = input.nextDouble();
        
        System.out.print("j = ");
        j = input.nextDouble();
        
        System.out.print("k = ");
        k = input.nextDouble();
        
        System.out.print("l = ");
        l = input.nextDouble();
    
        //Matrix which is going to be cleared
        double MRXX[][]={{a,b,c,d},{e,f,g,h},{i,j,k,l}};
        
        
        System.out.println("Your matrix equals: ");
        display2(MRXX);
        //THE MATH PART (GAUSS ELIMINATION)
        
        b = b/a;
        c = c/a;
        d = d/a;
        a = a/a;        
                        
        f = f - (b*e);
        g = g - (c*e);
        h = h - (d*e);        //e will now equal zero, the rest will be subtracted by e times the value above
        e = e - (a*e);                //this is done last else all the other values will just be the same..
        
                            // The first column of the matrix now equals 1,0,0
        j = j - (b*i);
        k = k - (c*i);
        l = l - (d*i);
        i = i-(a*i);    
        
        g = g/f;
        h = h/f;
        f=f/f;
        
        c = c - (b*g);
        d = d - (h*b);
        b = 0;
        
        k = k - (g*j);
        l = l - (h*j);
        j = j - (f*j);
        
        l = l/k;
        k=k/k;
        
        h= h - (g*l);
        g = 0;
        d = d - (c*l);
        c = 0;
                
        System.out.println();
        double MRX2[][]={{a,b,c,d},{e,f,g,h},{i,j,k,l}};
        System.out.println("Your matrix after Gauss Jordan elimination: ");
        display2(MRX2);
        x++;}
    catch(Exception q){
        System.out.println("You typed number.decimal, try using a comma instead.");
        counter++;
    }}while(x==1);

    }
    public static void display(String x[][]){
        for(int row=0;row<x.length;row++){
            for(int column=0;column<x[row].length;column++){
            System.out.print(x[row][column]+"\t");    
            }
            System.out.println();
            
}}
        public static void display2(double y[][]){
            for(int row=0;row<y.length;row++){
                for(int column=0;column<y[row].length;column++){
                System.out.print(y[row][column]+"\t");    
                }
                System.out.println();
                
    }
}
}
Anyone?
Ik ben nu ongeveer een maandje bezig met Java, ik leer het via YouTube: thenewboston/ , hij heeft
ongeveer 150 tutorials en heb er zo'n 100 gevolgd nu, vind het best leuk

Bij voorbaat dank

Oracle Certificering Java Developer

11-03-2013 discussie 13
Sinds kort is het schijnbaar verplicht om een cursus te volgen van Oracle om de certificering van Oracle Certified Java Developer (voorheen SCJD) af te ronden. Ik zit de kijken op de website van Oracle en ik heb gevonden uit welke cursussen je kunt kiezen.

Heeft iemand hier al ervaring mee? Wat is het niveau van deze cursussen (het lijkt nogal basis eigenlijk)? Is zo'n "Live Virtual Class" de moeite waard, of is het toch verstandiger om een "Classroom Training" te volgen (in Amsterdam )?

[Java]DB driver wordt niet gevonden

09-02-2013 discussie 6
Ik probeer een verbinding te maken met mijn PostGres database op mijn localhost. Hiervoor heb ik de nieuwste driver gedownload (postgresql-9.2-1002.jdbc4.jar) en deze geplaatst in de lib map van mijn huidige Java installatie. Tevens heb ik deze map handmatig toegevoegd aan de CLASSPATH via de omgevingsvariabele instellingen in Windows. Toch wordt op een of andere manier de driver niet gevonden.

Als ik ook een test doe
Java:
1
2
3
4
5
java.util.Enumeration e = java.sql.DriverManager.getDrivers();
while (e.hasMoreElements()) {
  Object driverAsObject = e.nextElement();
  System.out.println("JDBC Driver=" + driverAsObject);
}
Dan vind deze ook alleen een driver voor odbc. Als ik vervolgens in een command prompt set p uitvoer krijg ik de CLASSPATH variabele ook niet te zien. Kijk ik vervolgens weer in de omgevinsvariabele via "Deze Computer -> eigenschappen" staat het er wel tussen.

Als ik handmatig de driver probeer te laden
Java:
1
2
3
4
URL u = new URL("jar:"+this.jdbcDriverPath);
URLClassLoader ucl = new URLClassLoader(new URL[] { u });
Driver d = (Driver)Class.forName(driver.getDriver(), true, ucl).newInstance();
DriverManager.registerDriver(new dynamicDBDriver(d));
Dan krijg ik ook dezelfde foutmelding.
code:
1 No suitable driver found for jdbc:postgresql://
Probeer ik daarna nogmaals de driver te laden:
Java:
1
Class.forName(driver.getDriver()).newInstance();
Krijg ik de foutmelding
code:
1 ClassNotFound: org.postgresql.Driver
Via Google kom ik niet verder meer. Hoe zou ik dit verder nog op kunnen lossen?

[Java] Leren Programmeren

06-02-2013 discussie 48
Beste allemaal,

Dit jaar ben ik begonnen met econometrie, en het eerste blok krijgen we meteen een vak programmeren op ons bord. Nou heb ik geen informatica gehad op de middelbare school en nooit op eigen houtje geprogrammeerd (*slik* ja, ik ben mijn t.net-account niet waardig ). We krijgen de stof uitgelegd aan de hand van het boek "Beginning Programming Java for Dummies" (jep, op de universiteit...) en natuurlijk de colleges en opdrachten van het vak.

Nou moet ik eerlijk erkennen dat ik er de ballen van snap. De eerste colleges kon ik het nog wel een beetje volgen, maar nu heb ik geen flauw idee meer waar ik moet beginnen als bijvoorbeeld de volgende vraag krijg:quote:2. To determine the length of this array, make an auxiliary (and private) method in this class, named determineOccurencesNumber(int element), which returns an integer, indicating how many times the value in the element appeared in the series array. Hint: use the same logic you used when you counted zeros. This time you count a specific element value.Hier kan ik geen hoofd- en bijzaken onderscheiden, ik weet niet wat ik classes, methods en constructors moet maken en ik weet ook niet wat voor termen ik wel en niet in mijn programma moet overnemen.

Mijn vraag aan jullie is dan ook: wat zijn handige hulpmiddelen om Java te leren programmeren? Ik heb zelf al de Java Tutorials gevonden - die volgens mij best duidelijk en goed zijn. Als je op "Java learning" of iets dergelijks Googlet, krijg je ook een hoop resultaten. Maar hier zitten vast ervarener programmeurs die een betere kijk dan ik hebben op wat aan en af te raden is.

Alvast bedankt voor de moeite!

[java] Best-practise bij de-coupling Socket

22-01-2013 discussie 2
Ik ben bezig met het ontwikkelen van een applicatie, en ik loop een beetje vast bij het implementeren van een klasse die een paar kleine berichten moet sturen over een socket. Ik probeer alles zo goed mogelijk los te koppelen van elkaar, zodat ik alle onderdelen afzonderlijk kan unittesten en gebruik kan maken van dependency injection / mocks.

De verbinding naar de server heb ik gewrapped in een Connection class die er grof gezegd ongeveer zo uitziet (heb hier alle overige code weggelaten):
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Connection {
    private String host;
    private int port;
    private Socket socket;
    private BufferedWriter writer;
    private BufferedReader reader;
    
    public Connection(String host, int port) {
        this.host = host;
        this.port = port;
    }
    
    public void open() throws UnknownHostException, IOException {
        //....//
        this.socket = new Socket(host, port);
        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        //....//
    }
    
    public void close() throws IOException {
        //....//
        this.reader.close();
        this.writer.close();
        this.socket.close();
        //....//
    }
}
De Connection zelf is prima te mocken in een klasse welke gebruik maakt van een Connection, alleen de Connection klasse zelf is zo niet te unittesten. Hiervoor zal ik de Socket moeten mocken. Ik heb dit nu opgelost door een protected methode createSocket() toe te voegen die de socket aanmaakt en teruggeeft zodat ik deze in een unit test kan overriden (zie voorbeeld), maar ik vraag me af of dat wel de juiste manier is.

In de unit test van Connection doe ik dus zoiets (uiteraard krijg ik zo nooit een 100% test coverage maar dat is ook geen doel opzich lijkt me):
Java:
1
2
3
4
5
6
conn = new Connection("localhost", 100) {
    @Override
    protected Socket createSocket() {
        return socketMock;
    }
};
Een andere mogelijkheid zou een SocketFactory o.i.d. zijn, maar is dat niet wat overdreven? Wat zijn best-practises in dit soort gevallen?

[Android] Drag & Drop speelkaarten in hand

18-01-2013 discussie 1
Ik ben bezig met het maken van een Android kaartspel, maar nu loop ik vast op een bepaald punt. Ik wil graag dat mensen de mogelijkheid hebben om de kaarten in hun hand te sorteren. Een hand bestaat uit 13 (Er is een 14e kaart, maar deze is elke keer afkomstig uit de pot en dus tijdelijk) kaarten, deze kaarten staan allemaal in een ImageView welke op zijn beurt weer in een LinearLayout staat.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    <LinearLayout
        android:id="@+id/llCardDeck"
        android:layout_width="wrap_content"
        android:layout_height="90dp"
        android:layout_alignParentBottom="true"
        android:paddingBottom="5dp"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:weightSum="14" >

        <ImageView
            android:id="@+id/ivcard0_1"
            android:layout_width="wrap_content"
            android:layout_height="70dp"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:src="@drawable/bred" />

        <ImageView
            android:id="@+id/ivcard0_2"
            android:layout_width="wrap_content"
            android:layout_height="70dp"
            android:layout_gravity="bottom"
            android:layout_marginLeft="-25dp"
            android:layout_weight="1"
            android:src="@drawable/bred" />

        <ImageView
            android:id="@+id/ivcard0_3"
            android:layout_width="wrap_content"
            android:layout_height="70dp"
            android:layout_gravity="bottom"
            android:layout_marginLeft="-25dp"
            android:layout_weight="1"
            android:src="@drawable/bred" />

        [enz, enz enz enz...]
        
    </LinearLayout>
Nu wil ik dus graag dat mensen de inhoud van de ImageView kunnen verplaatsen. Nu heb ik gisteren lopen klooien met een onTouchListener voor elke kaart, maar ik kreeg het niet voor elkaar.

Wat ik graag wil is het volgende:Gebruiker pakt de kaarten en beweegt naar links/rechts De kaart (ImageView) naast de betreffende kaart veranderd vervolgens in de kaart die de persoon vast heeft. Afhankelijk van de richting waar hij heen beweegt is het de linker of rechter kaart De gebruiker laat de kaart los en zijn hand wordt geupdate.Het schrijven van de code die de hand weer update lukt me wel. Het schrijven van de code die de eerste twee stappen beschrijft echter niet.

Is er iemand die me vooruit kan helpen met dit probleem?

Alvast bedankt!

//EDIT
Onderstaande code laat zien hoe ik op dit moment de TouchListener (en ClickListener) bind aan de speelkaarten
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int cardIndex = 0; cardIndex < playerCards.length; cardIndex++) {
    final ImageView card = playerCards[cardIndex];
    final int finalIndex = cardIndex;

    card.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            markPlayerCardSelected(finalIndex);
        }
    });

    card.setOnTouchListener(this);
}

[Java] JPanel refreshen

09-01-2013 discussie 1
Hoi,

Om een Java-applicatie te maken (te vergelijken met een simpele tekstverwerker) gebruik ik de volgende klasse:
Java:
1
2
3
4
5
6
7
8
9
10
// BorderLayout
class BorderLayoutPanel extends JPanel {
    public BorderLayoutPanel(){
        setLayout(new BorderLayout());

        add(new TekstVak(), BorderLayout.CENTER);
        add(new FileHandler(), BorderLayout.WEST);
        add(new Bediening(), BorderLayout.SOUTH);
    }
}
Nu zorgt de "FileHandler()" instantie ervoor dat er een lijst met JButtons tevoorschijn komt waarbij elke button een bestand uit de uitgelezen directory voorstelt. Deze code ziet er als volgt uit:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class FileHandler extends JPanel {
    public static List<JButton> files;
    public ReadFile openbestand;
    public JButton refresh;
    
    File folder = new File("/Users/user/Documents/workspace/textedit");
    File[] listOfFiles = folder.listFiles();
    
    public FileHandler(){
        refresh = new JButton("refresh");
        add(refresh);
        files = new ArrayList<JButton>(); 
        setLayout(new GridLayout(10,10));
        
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                JButton button = new JButton(listOfFiles[i].getName());  
                files.add(button);
                button.addActionListener(new KnopHandler());
                add(button);
            } 
        }
    }
    
    class KnopHandler implements ActionListener{
        public void actionPerformed(ActionEvent e){
            String bestand = ((AbstractButton) e.getSource()).getText();
            if (bestand == "refresh"){
                revalidate();
            } else {
                openbestand = new ReadFile(bestand);
                TekstVak.setBox(bestand, ReadFile.getInhoud());
                Bediening.naam.setText(bestand);
            }
        }
    }
}
Wanneer er nu een bestand bijkomt of weggaat uit de uitgelezen directory, wil ik graag dat deze instantie opnieuw wordt aangeroepen, of dus eigenlijk wordt herladen.

Nu heb ik geprobeerd een 'refresh'-button te maken (niet de mooiste oplossing) waarmee ik 'revalidate()' aanroep in mijn FileHandler(). Helaas levert dit geen resultaat.

Kan iemand mij vertellen in welke richting ik moet denken om dit werkend te krijgen?
Resultaten per pagina: 25 | 50 | 100
1 2 3 ... 16


Samsung Galaxy S7 edge Athom Homey Xcom 2 Samsung Galaxy S7 Fallout 4 Apple iPhone 6C Hitman (2016) LG G5

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True