marek
O mnie
Programista Java z Gdańska
Pytania: 11
-
2011-02-27 23:35:49
Pomysł na generowanie unikalnych loginów
Witam. Piszę właśnie funkcjonalność (w Javie, ale chodzi mi o algorytm), która pozwoli na generowanie unikalnych loginó
-
2010-01-26 03:14:38
Elementy na jakich licencjach można stosować w komercyjnych...
Witam. Zdarza się, że stosuję w swoich aplikacjach cudzy kod i w związku z tym mam pytanie. Na jakich licencjach może by
-
2010-01-29 10:36:06
Autorskie koszty uzyskania przychodu dla programistów
Witam. Ostatnio dowiedziałem się, że praca programisty na podstawie umowy o pracę może zostać objęta autorskimi kosztami
-
2010-02-10 16:02:47
[Java] Ponowne połączenie w Hibernate dla aplikacji...
Witam. Mam aplikację desktopową (napisaną w Swingu), która wykorzystuje Hibernate to interakcji z bazą danych. Po jakimś
-
2010-04-23 13:49:01
Czytelność kodu - dopuszczalna ilość parametrów w metodzie
Witam. Ostatnio kolega powiedział mi, że z punktu widzenia czytelności kodu (i starał się cytować coś co przeczytał) me
-
2010-06-24 09:47:18
Polska książka do Javy FX
Cześć. Czy istnieje bądź jest w planach jakiegokolwiek wydawnictwa jakaś sensowna polskojęzyczna książka traktująca o Ja
-
2010-01-23 10:32:47
Jak wyglądają Wasze stereotypy dotyczące języków...
Jestem programistą Java i dostałem od kolegi coś TAKIEGO Ku mojemu zdziwieniu zdaję się być typowym Java fanboyem. :)
-
2010-02-24 16:40:08
[Java, Struts2] POST i GET przez ActionSupport w Struts 2
Dzień dobry. Posiadam klasę rozszerzającą ActionSupport, w której występuje pole test typu String z utworzonymi getterem
-
2011-12-07 21:05:25
Apache Commons Net - jak ściągnąć cały katalog z FTP? [Java]
Witam. Jak za pomocą biblioteki Apache Commons Net ściągnąć cały katalog? W sieci widzę tylko przykłady ściągania pojedy
-
2012-02-29 13:47:21
JSTL i iteracja mapy z Setem jako wartością
Witam. Mam taką strukturę: Map<String, Set<String, Item>> map = new TreeMap<>(); Jak za pomocą JST
Odpowiedzi: 34
-
2010-04-05 20:54:00 Program pod Windows wysyłający wiadomość do strony WWW
W Javie piszesz prostą aplikację w Swingu, następnie za pomocą Socket wysyłasz posta pod wskazany adres i odbierasz response, którego też bym na Twoim miejscu wyświetlił. Wygląd i tray to kosmetyka, więc ten fragment pomińmy. Aby wysłać coś POSTem pod wskazany adres, a potem odebrać response skorzystaj z tego przykładu:
http://www.exampledepot.com/egs/java.net/PostSocket.html
Sposób został przeze mnie już wykorzystany i działa.
Pozdrawiam serdecznie.
edit:
Napisałem program, o którym jak mi się wydaje mówiłeś. Oto link do niego (prawym i zapisz jako): HTTP POST Sender
Aby uruchomić (jeżeli masz zainstalowaną Javę) klikasz dwukrotnie, bądź z linii komend piszesz:
java -jar httppostsender.jar -
2012-02-23 08:50:18 Wywoływanie metody dla ementów vectora.
To jest pytanie z absolutnych podstaw Javy. Rozwiązanie jest proste. Widzę, że masz 3 różne klasy: TypA, TypB, TypC. Wszystkie te klasy powinny implementować interfejs mniej więcej taki:
public interface Typ { public void metoda(); }Czyli przykładowo TypA wyglądać będzie następująco:
public class TypA implements Typ { @Override public void metoda() { System.out.println("test"); } }I teraz wspomniany fragment kodu będzie wyglądał tak:
TypA ob1; TypA ob2; TypB ob3; TypC ob4; Vector obs = new Vector(); // dodawanie obiektów do vectora for(Enumeration e = obs.elements(); e.hasMoreElements(); ) { Typ o = (Typ) e.nextElement(); o.metoda(); }Poza tym dawciobiel ma sporo racji, tylko nie złapał tego co tak naprawdę chcesz zrobić. Życie.
Pozdrawiam, Marek
PS. Nie chciało mi się sprawdzić kodu czy działa, ale działać musi. ;)
edit:
PS2. Czyli zamiast rzutować na Typ musisz obie zrzutować na klasę Layer i będzie ok.
Layer o = (Layer) e.nextElement(); -
2010-01-15 07:32:22 Jaki jest Twój ulubiony kawał programistyczny?
A group of computer science majors were listening to a lecture about Java programming at a university. After the lecture one of the men leaned over and grabbed a women's breast. Woman: "Hey! Thats private OK!?" The man hesitated for a second looking confused. Man: "But I thought we were in the same class?"
-
2010-01-18 10:30:54 Sposób ustawiania elementów na formie
Istnieją cztery sposoby rozmieszczenia DIVów przy użyciu CSS: static, absolute, relative oraz fixed.
static - oznacza umieszczanie elementów wewnątrz bloków, w których się znajdują.
absolute - oznacza rozmieszczanie względem okna przeglądarki
relative - oznacza umieszczenie elementu relatywnie do miejsca, w którym znalazłby się normalnie
fixed - oznacza stałe miejsce, które nie zmienia się pomimo scrollowania dokumentu
Jest jeden bardzo ważny trik: jeżeli otoczysz pozostałe divy innym divem, któremu nadasz typ absolute to te divy wewnątrz będą rozmieszczane już względem tego zewnętrznego. Dlatego ja ułożyłem divy na swojej stronie używając praktycznie tylko rozmieszczenia absolute.
Reasumując, najpierw tworzysz diva zewnętrznego, któremu position ustawiasz na absolute, a potem te wewnątrz ustawiasz jak lecą, bądź zmieniasz im miejsce poprzez ustawienie pozycji również na absolute i wskazujesz współrzędne względem diva zewnętrznego. To działa. :) Jeżeli potrzebujesz elementy ruchome, jak np. stopka zawsze widoczna albo jakiś header zawsze widoczny to stosujesz fixed, ale IE się mota przy takim oznaczeniu.
Pozdrawiam.
PS. Bardzo ładnie jest to opisane w książce "HTML, XHTML i CSS Biblia" dostępnej na Helionie.
-
2010-01-28 13:45:39 Czy macie jakieś dolegliwości związane z długim siedzeniem przed
Nie używam okularów, ani nie mam żadnych dolegliwości poza bólem nadgarstka, który zniknął, gdy zacząłem stosować podkładkę pod nadgarstek. Okulary z antyrefleksem mam, ale nie lubię ich nosić i nie noszę, zwłaszcza, że nie mam nawet najmniejszej wady wzroku.
Jest jednak niedogodność - siedzący tryb pracy wiąże się z małym zużyciem energii, więc konieczna jest dobra dieta. :)
A żona faktycznie czasami krzyczy, ale to chyba bez względu na zawód.
-
2010-01-28 12:51:40 Jaki sprzęt do programowania ??
Klawiatura Logitech Internet 350. Na każdym moim pracodawcy wymusiłem zakup tego modelu do mojego stanowiska pracy. W domu też taką mam. Dla mnie idealny układ, niezbyt głośna i do tego dobrze dobrany opór przycisków.
Co do myszki to nie jestem wybredny - pracuję na czymkolwiek co ma 3 przyciski i kółko. Oczywiście preferuję laserowe, ale optyczne też mi nie przeszkadzają jeżeli mam odpowiednią podkładkę. Stary typ z kulkami odpada.
Monitor koniecznie LCD, co najmniej 19 cali, z ostrym obrazem.
-
2010-02-20 00:09:33 Co zamiast PHP?
Zastanawiam się czy to specyfika tego portalu czy może przypadek, że Java stanowi temat tabu. Ja osobiście programuję webowo w Javie (J2EE). Java to gigant, za którym stoją takie firmy jak IBM czy Oracle (teraz już właściciel firmy Sun Microsystems). Materiałów jest mnóstwo, a narzędzia i serwery w większości są zupełnie darmowe (czyli nie musisz korzystać z żadnych płatnych rozwiązań, aby stworzyć pełnowartościową aplikację webową - jedyny koszt to sprzęt :) ). W Javie, wbrew powszechnej opinii osób, które mają o niej blade pojęcie, można również tworzyć dość fajne aplikacje okienkowe, ale do tego konieczne jest odejście od wbudowanych Swinga oraz AWT i skorzystanie z SWT lub RCP (ale to tak na marginesie). Do tego w Javie możesz tworzyć dynamiczne strony za pomocą takich narzędzi jak GWT czy ECHO2. Wygoogluj sobie to i sprawdź o co dokładnie chodzi. I w końcu dochodzi JavaFX dla której logikę możesz pisać w zwykłej Javie natomiast widok za pomocą jej języka skryptowego, który akurat mi nie za bardzo przypadł do gusty. JavaFX zapewnia podobne możliwości jak Flash czy SilverLight, a do tego by ją wyświetlić na stronie wystarczy zainstalowane zwykłe JRE, które jest dość powszechne (potrzebne do czatowania na polskich portalach albo do zabawy na kurnik.pl).
Poza tym Java, RoR czy Python nie zamykają Cię w światku Microsoftu z jego kosztownymi rozwiązaniami, co uważam za przewagę tej trójki nad .NET.
A jeśli chodzi o wplatanie XHTML w strony na serwerze J2EE to wystarczy deklaracja w pliku .jsp albo .jsf. Działa to mnie więcej tak, że tworzysz pliki stron z trochę zmienioną składnią i później to jest wyświetlane jako zwykły XHTML. Zresztą rozumiesz jak działają skrypty PHP, więc np. jsp działa bardzo podobnie, ale np. po submicie wykonujesz operacje w normalnej Javie i potem wyświetlasz ponownie stronę JSP. Reasumując:
strona z XHTML jako JSP --> logika aplikacji --> kolejna strona JSP
Tak to wygląda w bardzo uproszczony sposób. Pozdrawiam!
-
2010-04-09 19:37:34 Jak rozmieścić JPanele w JScrollPane?
Moim zdaniem pewny, sprawdzony i działający sposób to wsadzić w JScrollPane nowy JPanel:
private final JPanel contactsPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); private final JScrollPane contactsScrollPane = new JScrollPane(contactsPanel);Potem dodajesz te panele z kontaktami do contactsPanel sumując ich wysokości i zmieniając odpowiednio wysokość contactsPanel tak, aby pomieścił wszystkie contactPanele.
Dosłownie zawsze robiłem to tak:
import java.awt.Dimension; import java.awt.FlowLayout; import java.util.ArrayList; import java.util.Collection; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; @SuppressWarnings("serial") public class MainFrame extends JFrame { private final Collection<String> contacts = new ArrayList<String>(); private final JPanel contactsPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); private final JScrollPane contactsScrollPane = new JScrollPane(contactsPanel); public MainFrame() { setTitle("Contacts"); //setResizable(false); setSize(300, 140); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new FlowLayout(FlowLayout.CENTER)); fillContacts(); contactsScrollPane.setPreferredSize(new Dimension(280, 90)); //contactsScrollPane.getViewport().add(contactsPanel); int height = 0; for (String name : contacts) { JPanel cp = new JPanel(new FlowLayout(FlowLayout.LEFT)); cp.setPreferredSize(new Dimension(260, 20)); cp.add(new JLabel(name)); contactsPanel.add(cp); height += 27; } contactsPanel.setPreferredSize(new Dimension(260, height)); add(contactsScrollPane); } private void fillContacts() { contacts.add("Jan Kowalski"); contacts.add("Adam Nowak"); contacts.add("Anna Kowalska"); contacts.add("Grzegorz Nowakowski"); contacts.add("Barbara Malinowska"); contacts.add("Weronika Kwiatkowska"); contacts.add("Mariusz Borek"); } }Jeśli masz jakieś pytania to komentuj moją odpowiedź.
Pozdrawiam, Marek
-
2010-04-23 13:41:01 java- podział tablicy 2D
Moim zdaniem przeoczyłeś klasę java.util.Arrays i jej metody copyOf oraz copyOfRange. Tam jest wszystko czego potrzebujesz.
A co do drugiej części to wydaje mi się, że nie do końca zrozumiałeś jak działają tablice w Javie. Tablica wielowymiarowa to inaczej tablica tablic.
Aby to zrozumieć, proponuję, abyś wykonał sobie ten kod:
char[][] chars = new char[2][2]; chars[0][0] = 'a'; chars[0][1] = 'b'; chars[1][0] = 'c'; chars[1][1] = 'd'; char[] charsAB = chars[0]; char[] charsCD = chars[1]; System.out.println(chars[0]); System.out.println(charsAB); System.out.println(new char[] {'a', 'b'}); System.out.println(Arrays.equals(new char[] {'a', 'b'}, charsAB)); System.out.println(chars[1]); System.out.println(charsCD); System.out.println(new char[] {'c', 'd'}); System.out.println(Arrays.equals(new char[] {'c', 'd'}, charsCD));Pozdrawiam.
edit: Kolega przemelek bardzo słusznie zauważył, że metody copyOf oraz copyOfRange weszły dopiero od wersji 1.6 JDK. Dlatego jeżeli używasz JDK w wersjach 1.5 lub 1.4 to nie będziesz miał tych metod, ale możesz znaleźć ich źródła w sieci i umieścić je w Twoim kodzie. :)
-
2012-02-07 11:48:20 Java - klasa zwracająca obiekt.
public class NoLabelSI extends StringItem { public NoLabelSI(String txt) { super(null, txt); } }












4
3
813