Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# "Graphics Region" u Javi???

[es] :: Java :: C# "Graphics Region" u Javi???

[ Pregleda: 2536 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon C# "Graphics Region" u Javi???26.10.2008. u 21:06 - pre 188 meseci
Da li postoji neki nacin da "isecem" AWT kontrolu (recimo,label) ili prozor na onaj nacin na koji to radim u C#-u - odredim putanju,prosledim je "Region" svojstvu kontrole/prozora i to je to,van naznacene putanje (regiona) kontrola ne postoji?

Konkretno,zelim da od AWT label kontrole napravim kontrolu u obliku elipse
 
Odgovor na temu

gajo2
Budapest

Član broj: 62614
Poruke: 518
*.i-rose.si.

Sajt: b.flyingoranges.com


+117 Profil

icon Re: C# "Graphics Region" u Javi???27.10.2008. u 07:58 - pre 188 meseci
Mozes tako sto crtas svoju kontrolu, recimo elipsu, pa napravis da klikovi misa ne reaguju van elipse.

1) Napravis novu komponentu koja nasledjuje recimo JLabel
2) Overridujes njegovu paintComponent() metodu:
Code:
public void paintComponent(Graphics g) {
  g.setColor(getBackground());
  g.fillRect(0,0,getWidth(),getHeight());
  g.setColor(getForeground());
  g.drawElipse(0,0,getWidth(),getHeight());
}

3) U konstruktoru objekta dodas MouseListener:
Code:
this.addMouseListener(new MouseAdapter() {
  public void mouseClicked(MouseEvent me) {
     if (me.getButton() == MouseEvent.BUTTON1 && misSeNalaziUnutarElipse(me.getX(),me.getY()) {
          // akcije na klik
     }
  }
});


Ako zelis da ti se labela iscrtava kao i uvek, samo zelis da odseces delove koje se nalaze van elipse, onda opet radis sa paintComponent() metodom.
Code:
public void paintComponent(Graphics g) {
  super.paintComponent(g);  // iscrtaj labelu kao obicno
  // odseci ostatak (napisi svoj postupak)
}
 
Odgovor na temu

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon Re: C# "Graphics Region" u Javi???27.10.2008. u 14:46 - pre 188 meseci
Aha,a ako zelim da isecem AWT Panel? Video sam da on ima PaintComponents ali to nije to,to se odnosi na kontrole koje sadrzi?
 
Odgovor na temu

gajo2
Budapest

Član broj: 62614
Poruke: 518
*.i-rose.si.

Sajt: b.flyingoranges.com


+117 Profil

icon Re: C# "Graphics Region" u Javi???28.10.2008. u 07:01 - pre 188 meseci
Zasto uopste koristis AWT panel? Koliko znam, ne postoji nikakav razlog zasto ne bi koristio Swing, a nacin kako to da radis u Swingu imas objasnjeno u prethodnom postu.

Kao sto pise ovde, AWT komponente se iscrtavaju od strane sistema, tako da ne mozes sam kontrolisati sta ce, kako i kada da se iscrta. Zbog toga nemas paintComponent() metodu, jer nemas kontrolu nad iscrtavanjem komponente. Ono sto si ti nasao je paintComponents() i primeti da ima s na kraju, tj. to nije isto. Medjutim, i AWT komponente moraju da implementiraju paint() metodu, koja je inace callback sistemskoj funkciji koja iscrtava dugme. Ovo je cista pretpostavka, ali mozda mozes da overridujes paint() metodu, tako da prvo super.paint() iscrta panel, pa posle ti na njega nacrtas invertovanu elipsu tako da sakrijes delove komponente.
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
217.26.78.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: C# "Graphics Region" u Javi???29.10.2008. u 11:10 - pre 188 meseci
Mislim da ti radis to na pogresan nacin :) Umesto da nasledjujes komponente i da ih rucno crtas bolje promeni look & feel, ili napravi novi po svojoj potrebi.

http://java.sun.com/docs/books.../uiswing/lookandfeel/plaf.html
http://java.sun.com/products/jfc/tsc/articles/sce/index.html

 
Odgovor na temu

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon Re: C# "Graphics Region" u Javi???29.10.2008. u 12:53 - pre 188 meseci
Hvala ljudi!
U principu ceo program sam prebacio u swing i paintComponent mi vrsi posao bas kao sto i treba

Malo sam razocaran sto Java nema mehanizam za "fizicko" isecanje kontrola (tako da kontrola zaista ne postoji van naznacene putanje) pa moram rucno da se petljam sa ogranicavanjem osetljivosti na klik misa,ali Boze moj....Malo duze sam koristio C# pa mi Java izgleda kao jedno veliko komplikovanje (eh,trebalo je navici se na nedostatak delegata u Javi )
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
217.26.78.*

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: C# "Graphics Region" u Javi???29.10.2008. u 13:19 - pre 188 meseci
Citat:
Bope: Hvala ljudi!
(eh,trebalo je navici se na nedostatak delegata u Javi :D)


Koristi eclipsu pa ih generisi.
 
Odgovor na temu

gajo2
Budapest

Član broj: 62614
Poruke: 518
*.i-rose.si.

Sajt: b.flyingoranges.com


+117 Profil

icon Re: C# "Graphics Region" u Javi???30.10.2008. u 07:41 - pre 188 meseci
Citat:
Bope: Hvala ljudi!
U principu ceo program sam prebacio u swing i paintComponent mi vrsi posao bas kao sto i treba :)

Malo sam razocaran sto Java nema mehanizam za "fizicko" isecanje kontrola (tako da kontrola zaista ne postoji van naznacene putanje) pa moram rucno da se petljam sa ogranicavanjem osetljivosti na klik misa,ali Boze moj....
Pa i onaj .NET-ov region verovatno radi isto, samo sto uradi za tebe. Ako budes cesto koristio ovakve isecane komponente onda napravi sebi biblioteku pa da uvek koristis iste komponente (a ne bih se cudio da negde na internetu vec postoji neka slicna freeware komponenta).

Citat:
eh,trebalo je navici se na nedostatak delegata u Javi
Pa imas nacina kako da simuliras delegate, ali slazem se da je steta sto dizajneri Jave taj feature uporno ne zele da ubace
 
Odgovor na temu

Bope

Član broj: 62233
Poruke: 291
*.adsl.verat.net.

Sajt: www.shortsms.me


+4 Profil

icon Re: C# "Graphics Region" u Javi???30.10.2008. u 07:56 - pre 188 meseci
Citao sam da ne zele da ubace delegate zato sto smatraju da bi to kvarilo objektnu orijentisanost programa :S
Pa ako je efikasno,sta fali,nije nista strashno?
 
Odgovor na temu

[es] :: Java :: C# "Graphics Region" u Javi???

[ Pregleda: 2536 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.