Java Frame

Bu program isteyirdim ki Her defe class.methodundan alan sozu Numayish etdirsin amma her defe birinci aldiqi sozu gosterir? Zehmet olmasa deyin bu kodda problem nededi? import java.awt.*; public class Test { public static void main(String[] args) { Frame pencere = new Frame("Alerme"); pencere.setLocation(5, 25); pencere.setSize(90, 40); pencere.setBackground(Color.red); int it=0; while(it!=Integer.MAX_VALUE){ Label lbAdres = new Label(Class.method()); pencere.add(lbAdres); pencere.setVisible(true); it++; } } } *Qeyd: Class.method() her hansi metoddir ki her defe bir String tipinde bir muxtelif soz gonderir

Verilmiş cavablar və yazılan şərhlər (6 cavab var)

Fariz Agayev (2010-12-12 00:23:16)
Eledi Componentleri daha yaxsi tanimaq olur hem de ishleme qurulma prinsiplerin bilmek olur

Ramin Orucov (2010-12-11 23:53:25)
Manual kod yazmağın çox xeyri var, amma vaxt çox aparır. Qafqazda biz də manual yazırdıq, konsolda işləyirdik.

Fariz Agayev (2010-12-11 23:43:47)
Sagol Ramin muellim Tesekkurler... PS: Neatbeans da islemek duzdu hasan gelir Amma Universitet projesi olduqu ucun Mecbur Kod yazasam)))

Ramin Orucov (2010-12-11 23:18:36)
Layout manager istifadə etmək lazım. GUİ üçün əl ilə kod yazmaq yerinə onu Netbeans-də vizual dizayner ilə hazırlamaq daha rahatdır. Layout manager-lərin istifadəsi haqqında dərslik http://download.oracle.com/javase/tutorial/uiswing/layout/index.html FlowLayout komponentləri arxa arxaya yerləşdirir, yer olmayanda alta keçirir. Bayaqkı proqramda belə dəyişiklik edib yoxlaya bilərsən: pencere.setSize(100, 100); pencere.setLayout(new FlowLayout()); JLabel lbAdres = new JLabel("Label"); JLabel lbAdres2 = new JLabel("Label 2"); pencere.add(lbAdres); pencere.add(lbAdres2);

Fariz Agayev (2010-12-11 23:08:21)
Sagol Ramin muellim cavaba gore . Birde Eger ikinci Labeli elave etsem Frame onda o evvelkinin uzerine dusur Amma ikinci label i Birincinin altinda yerlesdirmek isteyirem, Onu nece etmek olar?

Ramin Orucov (2010-12-11 22:42:56)
Bu proqramda problem var: Proqram məntiqi səhvdir. while(it!=Integer.MAX_VALUE) şərtinə görə proqram 2 147 483 647 (2^31-1) dəfə işləyir. Hər dəfə yeni Label obyekti yaradır, onu forma əlavə edir. Sizə lazım olan 1 frame və label yaradıb, label-in üzərindəki yazını dəyişməkdir. import javax.swing.*; public class Test { public static void main(String[] args) { JFrame pencere = new JFrame("Alert me"); pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pencere.setLocation(5, 25); pencere.setSize(100, 100); JLabel lbAdres = new JLabel("Label"); pencere.add(lbAdres); pencere.setVisible(true); int it=0; try { while(it < 100) { lbAdres.setText("" + SampleClass.method()); Thread.sleep(100); it++; } } catch(InterruptedException ex) { System.out.println(ex.getMessage()); } } } class SampleClass { public static int method() { return (int)(100*Math.random()); } }