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)
3
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());
}
}
1
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?
3
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);
1
Sagol Ramin muellim Tesekkurler…
PS: Neatbeans da islemek duzdu hasan gelir Amma Universitet projesi olduqu ucun Mecbur Kod yazasam)))
1
Manual kod yazmağın çox xeyri var, amma vaxt çox aparır. Qafqazda biz də manual yazırdıq, konsolda işləyirdik.
0
Eledi Componentleri daha yaxsi tanimaq olur hem de ishleme qurulma prinsiplerin bilmek olur
Sual verin
Cavab verin