Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Java czyli lamka w opałach
Idź do strony 1, 2  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Sob 22:24, 10 Cze 2006    Temat postu: Java czyli lamka w opałach

Bardzo byłbym wdzięczny za wytłumaczenie czemu w poniższym kodzie jest błąd kompilacji (a nawet 6 błędów)
Kod:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Game {

   String[] pola = new String[3];
   String w = "Nowa gra";
   pola[0] = w;
   pola[1] = "Tablica rekordów";
   pola[2] = "Wyjście";
   
}
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Sob 22:32, 10 Cze 2006    Temat postu: Re: Java czyli lamka w opałach

Kod:
String pola[] = new String[3];

a dalej nie wiem ;]
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Sob 22:40, 10 Cze 2006    Temat postu:

Bo to Java właśnie ;].
Nie możesz sobie tak po prostu inicjalizować poszczególnych pól tablicy w miejscu, gdzie wypisujesz składowe klasy, musisz przypisania wstawić do jakiejś funkcji. No i oczywiście to, co Jagm napisał, nawias po zmiennej, nie po typie.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Roxel
pijak



Dołączył: 06 Kwi 2006
Posty: 249
Przeczytał: 0 tematów

Skąd: Pszczyna

PostWysłany: Sob 22:47, 10 Cze 2006    Temat postu:

W javie obie deklaracje:

Kod:
typ nazwa[];
typ[] nazwa;


sa rownowazne.

A co do problemu to proponuje taki zapis:

Kod:
class Game {

   String w = "Nowa gra";
   String[] pola = {w,"Tablica rekordów","Wyjście"};
   
}
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
ZenonZajebich
żul



Dołączył: 19 Lis 2005
Posty: 662
Przeczytał: 0 tematów

Skąd: BRAK DANYCH

PostWysłany: Sob 22:51, 10 Cze 2006    Temat postu:

String w = new String( "Nowa gra" )
Może tak?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Sob 22:56, 10 Cze 2006    Temat postu:

@Roxel: Dzięki, przeszło.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Śro 16:38, 14 Cze 2006    Temat postu:

Dobra, to dalsza część lamki w opałach. Mam w grze menu obsługiwane z klawiatury. I ono działa tak, że napis jest "podświetlony" prostokątem o innym kolorze niż tło. I w momencie gdy użytkownik wciśnie strzałkę góra / dół wywołuję repaint() i przerysowywuję menu ale z prostokątem w innym miejscu.

Metoda paint() jest realizowana mniej więcej tak:
Kod:
g.setColor(kolorTla);
g.fillRoundRect(-wspolrzedne starego prostokata-);

g.setColor(kolorPodswietlenia);
g.fillRoundRect(-wspolrzedne nowego prostokata-);

g.setColor(kolorCzcionki);
for(int i=0; i<Ilosc_pozycji_menu; ++i)
    g.drawString(-odpowiednia pozycja menu na swoim miejscu-);


Problem polega na tym, że przy przerysowywaniu napisy w menu brzydko mrugają. Czy ktoś wie w jaki sposób można to wyeliminować?
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Fidel
żul



Dołączył: 19 Lis 2005
Posty: 649
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 16:59, 14 Cze 2006    Temat postu:

robisz bufforowanie, wyglada to mniej wiecej tak:

Kod:

Graphics bufferGraphics;
public void paint( Graphics g ){
  if( bufferGraphics == null ){
    bufferImage = createImage( szerokosc ramki, wysokosc ramki );
    bufferGraphics = bufferImage.getGraphics( );
  }
  bufferGraphics .setColor(kolorTla);
  bufferGraphics .fillRoundRect(-wspolrzedne starego prostokata-);

  bufferGraphics .setColor(kolorPodswietlenia);
  bufferGraphics .fillRoundRect(-wspolrzedne nowego prostokata-);

  bufferGraphics .setColor(kolorCzcionki);
  for(int i=0; i<Ilosc_pozycji_menu; ++i)
    bufferGraphics .drawString(-odpowiednia pozycja menu na swoim miejscu-);

  g.drawImage(bufferImage, 0, 0, this);
}
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Śro 17:23, 14 Cze 2006    Temat postu:

Dzięki, nawet to działa, szkoda że za bardzo nie wiem dlaczego.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Wto 15:25, 20 Cze 2006    Temat postu:

Ok, mam ponowny problem z rysowaniem, siedzę nad nim już ze 3 godziny i za raz rzucę monitorem o ścianę...

Więc tak:
Do rysowania używam bufferingu jak wyżej zademonstrował Fidel. Oprócz tego mam dużo obiektów klasy Image które pobierają grafikę w z dysku sposób :
Kod:
Image obrazek = Toolkit.getDefaultToolkit().getImage(nazwaPliku);

Problem polega na tym, że obrazki wydają się nie inicjalizować. Tj. po pierwszym wywołaniu repaint() przez wątek metoda paint() wywołuje się nie raz, a w ciul razy (5-20) i też zdarza się że nie wszystkie rysunki planszy są po tym cyklu wywołań wyrysowane. Później mam animację koparki, kilkanaście klatek. I też na początku te klatki nie są rysowane, albo są rysowane tylko niektóre. Później już wszystko działa w porządku.
Czy ktoś wie o co w tym chodzi, ew. jak to naprawić? Wszelkie sugestie osób które też wstawiają jakąś grafikę z pliku mile widziane.

edited: Problem rozwiązany, twórcę klasy Image i sposobu w jaki działa tam cała grafika powinni nabić na pal. Po prostu przy inicjalizacji obiektów typu Image trzeba je wrzucić do pamięci. Można to zrobić wywołując obrazek.getWidth(ImageObserver);
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Makros
pijak



Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Śro 9:44, 21 Cze 2006    Temat postu:

a ja dodam od Siebie (też troche czasu na to poszło...), że getImage(nazwaPliku); nie czyta plików *.bmp....
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Czw 14:58, 17 Sie 2006    Temat postu:

A teraz mam pytanie odnośnie NIE Javy, tylko C++:

Spotkałem się ostatnio z konstrukcją
Kod:
x <?= y;

Oznacza ona mniej więcej tyle
Kod:
if(y>x)
    x = y;


Czy ktoś mógłby mi wytłumaczyć skąd to się bierze? Czy to jest jakieś sprytne użycie operatora ?: czy też jest to może jakiś przestażały operator który wyszedł już z użytku? Prawdę mówiąc nie rozumiem dlaczego takie coś mi się wogóle kompiluje.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Pawel Str.
pijak



Dołączył: 06 Lut 2006
Posty: 429
Przeczytał: 0 tematów

Skąd: Ze starszego roku / Z Gorlic

PostWysłany: Czw 16:00, 17 Sie 2006    Temat postu:

Niestandardowe rozszerznie gcc, z którego się zresztą mieli w nowszych wersjach kompilatora wycofać.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Fidel
żul



Dołączył: 19 Lis 2005
Posty: 649
Przeczytał: 0 tematów

Skąd: Kraków

PostWysłany: Pon 11:29, 21 Sie 2006    Temat postu:

Makros napisał:
a ja dodam od Siebie (też troche czasu na to poszło...), że getImage(nazwaPliku); nie czyta plików *.bmp....

z tego co pamietam to tylko gif i jpg mozna przez getimage pobierac
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Spectro
Mistrz grilla



Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów

Skąd: Kurdwanów

PostWysłany: Pon 19:25, 21 Sie 2006    Temat postu:

Rogal napisał:
Kod:
x <?= y;

Oznacza ona mniej więcej tyle
Kod:
if(y>x)
    x = y;

Są jeszcze:
Kod:
x ?: y
czyli:
Kod:
x ? x : y
W praktyce: "Jeżeli x jest zerem, to y; w przeciwnym razie x".

oraz

Kod:
x >? y
czyli:
Kod:
x>y ? x : y
Po prostu całkiem użyteczne maksimum (minimum analogicznie).

Warto czasem zobaczyć do dokumentacji GCC :) .
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robson
zielony żul



Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów

Skąd: Z Lasu :]

PostWysłany: Pon 22:23, 21 Sie 2006    Temat postu:

Cytat:
Warto czasem zobaczyć do dokumentacji GCC :) .


A potem dziwic sie dlaczego w innym kompilatorze nie chce sie kompilowac... ;)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Spectro
Mistrz grilla



Dołączył: 09 Mar 2006
Posty: 2306
Przeczytał: 0 tematów

Skąd: Kurdwanów

PostWysłany: Wto 8:10, 22 Sie 2006    Temat postu:

Aha, zapomniałbym - w poście Rogala powinno być:
Kod:
if(y<x)
    x = y;

(Chodzi o znak nierówności).

Robson napisał:
A potem dziwic sie dlaczego w innym kompilatorze nie chce sie kompilowac...

Na ASD2 jest GCC. To powinno zmotywować do zapoznawania się z tym kompilatorem ;) .
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robson
zielony żul



Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów

Skąd: Z Lasu :]

PostWysłany: Wto 16:34, 22 Sie 2006    Temat postu:

#ifndef OFFTOPIC
#define OFFTOPIC
Nie wiem czy samo ASD2 motywuje na tyle zeby uczyc sie jakis figli-migli producentów jednego kompilatora... moze gdybym miał z tym kompilatorem spedzic 2+ lat w jakiejsc firmie to tak, ale na pol roku to niebardzo... pozatym takie cosie zaciemniaja sprawe 9algorytm) i potem szukaj se bledu przez 5 godzin...
Pozaty zawsze bylem purystą jezykowym ( ;) ) i jakos dobrze na tym wychodziłem...
Jesli ktos jednak lubi nowalijki ;) to ja nie bronię... wyrazam tylko swoje mikro zdanko :) moze uda mi sie kogos przekonac ze jednak lepiej czasami włozyc wiecej pracy a stworzyc cos uniwersalnego :)
#endif // OFFTOPIC ;)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Wto 18:28, 22 Sie 2006    Temat postu:

Dzięki za rozjaśnienie sprawy. Ja co prawda też wolę używać standardowych konstrukcji, ale czasami trzeba wyłapać błędy w cudzym kodzie i w takich sytuacjach znajomość nietypowych konstrukcji jest również przydatna.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Pią 20:51, 15 Cze 2007    Temat postu:

czy jest mi ktos w stanie wytlumaczyc, dlaczego cos takiego:
Kod:
      log.debug("Reguly: " + regula);
      String tmp2[] = regula.split("|");
      for(int i=0;i<tmp2.length;++i) {
         log.debug(i + ": " + tmp2[i]);
      }

wypluwa mi:
Kod:
2007-06-15 20:48:46,656 DEBUG [main] Reguly: A3A1|b
2007-06-15 20:48:46,656 DEBUG [main] 0:
2007-06-15 20:48:46,656 DEBUG [main] 1: A
2007-06-15 20:48:46,656 DEBUG [main] 2: 3
2007-06-15 20:48:46,656 DEBUG [main] 3: A
2007-06-15 20:48:46,656 DEBUG [main] 4: 1
2007-06-15 20:48:46,656 DEBUG [main] 5: |
2007-06-15 20:48:46,656 DEBUG [main] 6: b

zamiast:

Kod:
2007-06-15 20:50:06,937 DEBUG [main] Reguly: A3A1|b
2007-06-15 20:50:06,937 DEBUG [main] 0: A3A1
2007-06-15 20:50:06,937 DEBUG [main] 1: b


dodam, ze jesli zmienie "|" na ":" to dziala
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Madras
Omylny Admin



Dołączył: 09 Lis 2005
Posty: 2021
Przeczytał: 0 tematów

Skąd: Z Pokoju :]

PostWysłany: Pią 21:55, 15 Cze 2007    Temat postu:

Spróbuj tak:
Kod:
String tmp2[] = regula.split("\\|")
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
jagm
zielony żul



Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów


PostWysłany: Pią 21:57, 15 Cze 2007    Temat postu:

pieprze to. juz se przerobilem na dwukropek
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Skrobocik
[SKROBORANGA]



Dołączył: 29 Lis 2005
Posty: 2958
Przeczytał: 0 tematów

Skąd: Skarżysko , Kraków

PostWysłany: Nie 3:29, 30 Gru 2007    Temat postu:

No to ja teraz sobie pozwolę pociągnąć ten temat, bo wreszcie wziąłem się za projekt dyskretny z SK:

(1) czy da się jakoś dwa JSlidery uzależnić od siebie :?:
Mam ilość krów i ilość borsuków i jak jednym suwakiem przesuwam w maksa, to żeby drugiego przesuwał w dół, żeby w sumie nie wyszło więcej zwierzątek, niż plansza pomieści :?:

(2) JSlidery nie mają ActionListenerów, ale czy da się to jakoś obejść :?:
Myślałem, żeby to co ustawi się JSliderem wyświetlało się w zablokowanym do edycji JTextFieldzie, albo czy ewentualnie da się zrobić tak, że jak przesuwam JSliderem na skali, to wyświetla chmurkę z wartością. Ewentualnie w JTextFieldzie taki ActionListener, że mi zczyta to co ustawiłem JSliderem :?:

PS:
W FireFoxie zaznacza mi, że "zczyta" jest niepoprawnie, a dobrze jest "sczyta" :shock:


Ostatnio zmieniony przez Skrobocik dnia Nie 3:30, 30 Gru 2007, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
hansu
Nieomylny Admin



Dołączył: 17 Lis 2005
Posty: 1990
Przeczytał: 0 tematów

Skąd: przychodzimy? Czym jestesmy? Dokad zmierzamy?

PostWysłany: Nie 3:55, 30 Gru 2007    Temat postu:

Skrobocik napisał:
W FireFoxie zaznacza mi, że "zczyta" jest niepoprawnie, a dobrze jest "sczyta" :shock:


I ma racje :P
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kafex
zielony żul



Dołączył: 28 Mar 2006
Posty: 1458
Przeczytał: 0 tematów

Skąd: Zawiercie

PostWysłany: Nie 12:02, 30 Gru 2007    Temat postu:

google.pl napisał:
Wyniki 1 - 10 spośród około 5,840 dla zapytania zczyta.
Wyniki 1 - 10 spośród około 1,340 dla zapytania sczyta.


google mówi inaczej ;P
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Archiwum / 1 rok / 2 i 3 semestr - Programowanie Wszystkie czasy w strefie EET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin