|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
20.11.2013, 23:27 | #81 |
Veteran
|
Re: How to... Java
@Nix
Paint nije bas 'bilo koja' metoda. To je override-ovana metoda. Stvar je u tome sto prilikom dodavanja neke komponente (npr Frame-a) automatski se poziva metoda paint. Na jednostavnijem nivou, to je isto kao kada u svojoj klasi override-ujes metodu toString, i onda kada uradis System.out.println(objekat_tvoje_klase) on ispise sta god si mu rekao u toString. Kao sto kada uradis println objekta on pozove toString, tako kada dodas graficku komponentu ona pozove paint. P.S Pomesao si termine 'implicitno' i 'explicitno'. |
Sledeći korisnik se zahvaljuje korisniku Ivan452 na korisnoj poruci: | ||
NIx Car (21.11.2013) |
21.11.2013, 11:40 | #82 |
Deo inventara foruma
|
Re: How to... Java
Mislim da sam ukapirao... Posto me je gomila stvari i oko dogadjaja bunila... profesor mi je poslao kako ja sam da napravim svoj dogadjaj... Izgleda jako konfuzno ali ukapiracu i to
|
28.11.2013, 21:26 | #83 |
Deo inventara foruma
|
Re: How to... Java
Imam klasu Krugovi u kojoj sam napravio konstruktor
Kod:
public Krugovi() { Random r = new Random(); x = r.nextInt(800); y = r.nextInt(600); } Kod:
Krugovi[] kr = new Krugovi[5]; |
29.11.2013, 22:52 | #84 | |
Starosedelac
Član od: 4.11.2007.
Poruke: 1.726
Zahvalnice: 1.753
Zahvaljeno 629 puta na 363 poruka
|
Re: How to... Java
Citat:
Kod:
Krugovi[] kr = new Krugovi[5]; U for petlji napuni taj niz krugovima. Kod:
Krug[] krugovi = new Krug[5]; for(int i = 0; i < krugovi.length; i++) { krugovi[i] = new Krug(); System.out.println(krugovi[i].getX() + " " + krugovi[i].getY()); } Verujem da zvucim kao neko matoro zakeralo, ali zamisli da su tvorci jave davali imena atributima i klasama na taj nacin. Zamisli kolika bi zbrka ispala iz svega toga, pa kad trazis atribut koji se zove "color", a ono imas samo nesto sto se zove "c". Najverovatnije ne bi ni pretpostavio da je u pitanju ono sto tebi treba. Ili da radis na nekom projektu, a moras da desifrujes kod kolege, i da trazis sta je "c", sta je"k", sta je "a", itd. Rezultat = manjak kose, kraci zivci, manjak produktivnosti. Poslednja ispravka: Krilce (29.11.2013 u 23:02) |
|
Sledeći korisnik se zahvaljuje korisniku Krilce na korisnoj poruci: | ||
NIx Car (30.11.2013) |
30.11.2013, 16:46 | #85 |
Deo inventara foruma
|
Re: How to... Java
Skontao sam to maaalo kasnije (gde sam napravio gresku). Takodje sam i ime klase izmenio.
Imam jos gomilu problema sa kojima se susrecem oko rada na ovom zadatku, ali cu probati sam da ih resim, pa ako zapnem , javljam se |
1.12.2013, 23:47 | #86 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: How to... Java
Dok Nix radi ja bih zatražio pomoć oko Jave.
Pravim program sa JavaFX-om koji crta vektorsku grafiku na Canvas. Jel zna neko da li se oblik (path) formiran pozivima lineTo, arcTo, itd može ikako obrisati, ili ta staza ostaje zanavek zakucana na tom Canvas-u. Sad mi nije problem sa pravougaonicima i ostalim mnogouglovima (jer postoje metode za direktno crtanje i punjenje linija, pravougaonika, poligona), ali za komplikovanije ne vidim kako da implementiram. |
8.12.2013, 15:54 | #87 |
Starosedelac
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
|
Re: How to... Java
Nisam nešto preterano upoznat sa javom, ali ne možeš da brišeš path sa canvasa kolko znam. Moraš da brišeš ceo canvas, ili ja msm da postoji metoda za brisanje dela canvasa (clearRectangle ili tako nešto)
|
8.12.2013, 17:45 | #88 |
Starosedelac
Član od: 4.11.2007.
Poruke: 1.726
Zahvalnice: 1.753
Zahvaljeno 629 puta na 363 poruka
|
Re: How to... Java
Mozda da iskoristis MVC sablon, tako da razdvojis element i njegov shape, pa da imas nesto sto ce brinuti o iscrtavanju elemenata na canvas, tako da posle samo obrises citav element, umesto da pokusavas da brises sam shape. Brainstorming.
|
8.12.2013, 21:55 | #89 |
Veteran
|
Re: How to... Java
MVC pattern se ne koristi za te stvari. Za ovu problematiku sto si ti spomenuo koristi se Command patern ili Memento.
|
8.12.2013, 22:27 | #90 |
Starosedelac
Član od: 4.11.2007.
Poruke: 1.726
Zahvalnice: 1.753
Zahvaljeno 629 puta na 363 poruka
|
Re: How to... Java
|
11.12.2013, 21:03 | #91 |
Starosedelac
Član od: 3.12.2006.
Lokacija: Autoput za Nis
Poruke: 1.277
Zahvalnice: 370
Zahvaljeno 240 puta na 131 poruka
|
Re: How to... Java
Ako je neko online, treba mi pomoc sa jednim testom za skolu....radi se o validaciji, uradio sam sve, bar mislim ali svejedno u polja za slova mogu da pisem brojeve i obrnuto....u pitanju je javascript
|
11.12.2013, 21:19 | #92 |
Veteran
|
Re: How to... Java
Objasni malo bolje problem (nisam siguran da je ovo tema za JS). Iz ovog napisanog deluje mi kao posao za regularni izraz.
|
11.12.2013, 21:53 | #93 |
Starosedelac
Član od: 3.12.2006.
Lokacija: Autoput za Nis
Poruke: 1.277
Zahvalnice: 370
Zahvaljeno 240 puta na 131 poruka
|
Re: How to... Java
Sredjeno...falila jedna zagrada i kosa crta
|
21.12.2013, 16:04 | #94 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: How to... Java
Kako da u Swing-u namestim da prozor (JFrame ili JDialog) ima tanak okvir (špicaste ivice, tanak title bar, ima samo close dugme)? To se u Win32 zove WS_EX_TOOLWINDOW.
Spoiler za Ovaj stil:
|
21.12.2013, 16:40 | #95 | |
Veteran
|
Re: How to... Java
Citat:
Kod:
JFrame frame = new JFrame(); frame.setUndecorated(true); frame.setShape(new RoundRectangle2D.Double(10, 10, 100, 100, 50, 50)); frame.setSize(300, 200); frame.setVisible(true); |
|
21.12.2013, 19:46 | #96 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: How to... Java
To nije to
Ali otkrio sam kako da to uradim. Treba da se koristi JNA biblioteka. Kod:
import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef.*; //... JFrame frame = new JFrame(); long ptr = Native.getWindowID(frame); HWND hwnd = new HWND(new Pointer(ptr)); User32.INSTANCE.SetWindowLong(hwnd, User32.GWL_EXSTYLE, 0x80); frame.setVisible(true); Inače, desilo mi se nešto neverovatno, skinuo sam JNA, ubacio u projekat, otkucao ovaj kod, i proradio je kako je očekivano iz prve, što mi se desi jednom u 2 meseca. |
21.12.2013, 21:22 | #97 |
V.I.P. GNU/Linux
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.082
Zahvaljeno 4.922 puta na 2.858 poruka
|
Re: How to... Java
S tim što si izgubio multiplatformnost, pošto direktno gađaš USER32.DLL koji je Windows-specific... doduše ne znam koliko ti je to bitno za projekat.
Ovo između "new JFrame" i "frame.setVisible" bi mogao da proveriš u rantajmu preko System.getProperty("os.name"), ali ne znam oko ovih importova gore, da li u Javi postoji neki ekvivalent C-ovskom "#ifdef _WIN32 #include <to_i_to.h>"... Poslednja ispravka: voodoo_ (21.12.2013 u 21:38) |
21.12.2013, 22:05 | #98 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
Re: How to... Java
Ne brini, mislim ja na multiplatformnost od početka. Još ranije sam definisano apstraktnu klasu PlatformUtils koja ima podklase za Windows i Mac OS X, gde su razne utility metode za platformski specifične stvari (koja će biti instancirana određuje se baš na osnovu os.name, a i os.version). A ovaj kod gore je samo ono što na stack overflow zovu minimal working example.
|
Sledeći korisnik se zahvaljuje korisniku ivan90BG na korisnoj poruci: | ||
voodoo_ (21.12.2013) |
12.1.2014, 1:04 | #99 |
Deo inventara foruma
|
Re: How to... Java
Kod:
import java.applet.Applet; import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.geom.CubicCurve2D; public class Luk extends Applet implements Runnable, MouseMotionListener { private int drawY = 200; private int y; CubicCurve2D cubicCurve; @Override public void init() { setSize(800, 480); setBackground(Color.BLACK); setFocusable(true); addMouseMotionListener(this); Frame frame = (Frame) this.getParent().getParent(); frame.setTitle("Luk"); cubicCurve = new CubicCurve2D.Double(); } @Override public void start() { Thread thread = new Thread(this); thread.start(); } @Override public void stop() { // TODO Auto-generated method stub } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void run() { while (true) { repaint(); try { Thread.sleep(18); }catch(InterruptedException e){} } } public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; g.setColor(Color.RED); cubicCurve.setCurve(110, 50, 300,drawY, 200, drawY, 600, 50); g2.draw(cubicCurve); } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseMoved(MouseEvent e) { } } I didn't came up with anything.. |
12.1.2014, 2:40 | #100 |
Veteran
|
Re: How to... Java
Izvoli ovo:
Kod:
import java.awt.*; import java.awt.event.*; import java.awt.geom.QuadCurve2D; import javax.swing.*; import javax.swing.border.*; class Main extends JFrame { private int tool = 1; int currentX, currentY; QuadCurve2D q = new QuadCurve2D.Float(); Graphics2D g2d; public Main() { initComponents(); } private void initComponents() { jPanel2 = new Panel2(); q.setCurve(1, 2, 200, 200, 100, 200); jPanel2.setBackground(new java.awt.Color(255, 255, 255)); jPanel2.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); jPanel2.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent evt) { jPanel2MouseDragged(evt); } }); this.setContentPane(jPanel2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); } private void jPanel2MouseDragged(MouseEvent evt) { if (tool == 1) { currentX = evt.getX(); currentY = evt.getY(); q.setCurve(1, 2, currentX, currentY, 100, 200); jPanel2.repaint(); } } public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { new Main().setVisible(true); } }); } private JPanel jPanel2; class Panel2 extends JPanel { Panel2() {setPreferredSize(new Dimension(420,420));} @Override public void paintComponent(Graphics g) { super.paintComponent(g); g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.draw(q); } } } Mozda kod nije najlepsi, ali radi X i Y koordinate pocetne i krajnje tacke krive su fiksirane u kodu, prilikom prevlacenja se menja samo zakrivljenje. Verujem da ce ti to biti dovoljno da iskoristis u svom projektu. P.S Moja preporuka je da krivu odvojis kao poseban objekat i onda da mozes da joj lako menjas i ostale atribute po zelji. I nemoj tvoju klasu da nazivas 'Luk', jer luk(arc) i kriva(curve) nisu isto. |
Sledeći korisnik se zahvaljuje korisniku Ivan452 na korisnoj poruci: | ||
NIx Car (13.1.2014) |
Bookmarks sajtovi |
Tagovi |
java |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Java - out of Memory | Vajsmilan | Aplikativni softver | 6 | 6.2.2012 20:54 |
Android - pozivanje Java metoda iz native koda | voodoo_ | Programiranje | 5 | 14.10.2011 8:59 |
Samsung D600 Java upload (USB cable) | Aleksandar | Programi za mobilne telefone | 0 | 16.6.2008 13:54 |
Jel' se ovo misli na Java Script ili? | Tim85 | Internet tehnologije | 2 | 7.12.2006 12:33 |
G-thing program za LG(imam U8180) za java igre trazim gde ima? besplatno?trial? | Ilic Marko | Programi za mobilne telefone | 1 | 9.2.2006 14:09 |