Java

Programovacie jazyky, rady, poradňa...
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

skoncil som pri tom ze ak chceme realizovat nejakú udalost, tak musime tej komponente pridat posluchaca... alebo take daco... proste je mi to dost tazke ucit sa to sam :)
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Príspevok od používateľa konyk87 »

zozen si niekde napr knihu Pavel Herout - Java - Graficke uzivatelske prostredi a cestina alebo si nastuduj tie veci z Thinking in Java...v Heroutovi su vacsinou len zakladne veci, ale je to celkom fajn vysvetlene + dost zdrojakov, z ktorych sa da pochopit, co ktory komponent robi...
v TiJ tiez treba hlavne studovat zdrojaky a nie je odveci si ten-ktory program aj skompilovat a spustit...ked pochopis tak uz to pojde samo...

inak myslim, ze z takym pristupom aky ma ten balkansky sandokan, co to prednasa, sa to musel asi kazdy ucit sam :wink: a este ked chytis jednu z tych super cviciacich tak uz ti to zostava len na doma...asi preto som OOP nespravil, ale mozno to bude aj tym, ze som sa na to vykaslal a spravil som radsej fyziku a ADM a Javu som dostudoval cez leto :)
beluský napísal:no aj to je jedna z moznosti ;) ja mam tetu Povazanovu :D
tetu upratovacku? :lol: no pri tej sa moc nenaucis... ona ma niekedy problemy so zakladnymi vecami s PC - si spominam ako chcela skopirovat nejaky text do zdrojaku - nie ze by si ho oznacila a dala copy, ale pokusala sa tam vlozit subor .doc..no my sme mali dost :D a potom, ze je to skolstvo tam kde je...
xivo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 752
Registrovaný: 27 jún 2005, 22:49
Bydlisko: Slovensko
Kontaktovať používateľa:

Príspevok od používateľa xivo »

Nakoľko sme v škole skor brali principy OOP, Design patterny atd tak ostatne veci som si musel o Jave nastudovat sam, pozri vzdy ked ti odpisujem tak mi pomaha stranka http://java.sun.com/ (a google)

Proste tam musis najst vsetko a este si odtial stiahni dokumentaciu ...

Pre veci typu ActionListener a spol mas tento link

http://java.sun.com/docs/books/tutorial ... intro.html

naboku si este preklikavas ono je to tahsie a tahsie :wink:

a len tak v skratke co o tom viem ja ..
Trieda musí implementovat ActionListener
Ak daco implementuje ActionListener, musi to obsahovat metodu actionPerformed(ActionEvent e) a v nej kontrolujes co sa stalcilo(napr u tlacitok)

Kód: Vybrať všetko

public class Akcie extends JFrame implements ActionListener{

	JButton b = new JButton("Ahoj");
	JButton c = new JButton("Joj");
	public Akcie(){
		this.setSize(100, 100);
		this.setLayout(new FlowLayout());
		this.add(b);
		this.add(c);
		this.setVisible(true);
		c.addActionListener(this);
		b.addActionListener(this);
	}
	public static void main(String[] args) {
		new Akcie();
	}

	public void actionPerformed(ActionEvent arg0) {
		if(arg0.getSource() == b){
			System.out.println("Stlacil si tlacitko b ");
		}
		if(arg0.getSource() == c){
			System.out.println("Stlacil si tlacitko c ");
		}
	}

}
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

Trošku som sa s tým pohral. No hádam sa už na mňa čosi nalepilo.
Prečo, ale po spustení mám zarovnané label aj button napravo, ked som to dal jedno vlavo, jedno vpravo... kukal som si aj

Kód: Vybrať všetko

FlowLayout
public FlowLayout(int align,
                  int hgap,
                  int vgap)

Parameters:
align - the alignment value // zarovananie vlavo, vpravo alebo stred
// a toto vobec netusim co je nejaka medzera medzi komponentami?
hgap - the horizontal gap between components 
vgap - the vertical gap between components
ale moc mi to nedalo, lebo neviem ako sa to pouziva... len som sa docital, ze to zabezpecuje rozmiestnenie komponent na forme.

Kód: Vybrať všetko

import java.awt.*;
import java.awt.event.*;

public class Okno extends Frame implements WindowListener, ActionListener {

	private static final long serialVersionUID = 1L; // toto tu byt musi inak hlasi chybu (?)
	int pocetStlaceniOK;
	Button b = new Button("OK");
	Label l = new Label();
	
	public static void main(String[] args) {
		// vytvorim nove okno, nastavim velkost a zobrazim ho
		Okno noveOkno = new Okno("Prve okno");
		noveOkno.setSize(350,100);
		noveOkno.setVisible(true);
	}
	
	public Okno(String title) {
		super(title);			
		setLayout(new FlowLayout(FlowLayout.LEFT));
		add(l);
		setAlwaysOnTop(true);
		setLayout(new FlowLayout(FlowLayout.RIGHT));
		addWindowListener(this);
		add(b);
		b.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e) {
		pocetStlaceniOK++;
		l.setText("Tlacidlo si stlacil " + pocetStlaceniOK + "x");
		System.out.println(Okno.this); 
	}

	public void windowClosing(WindowEvent arg0) {
		System.out.println("Zatvaram okno");
		l.setText("Zatvaram okno");
		dispose();
		System.exit(0); // ked toto vynecham tak sa spusti aj windowClosed
	}
	
	public void windowOpened(WindowEvent e) {
		System.out.println("Okno otvorene... Vitajte... bla, bla, bla...");
		l.setText("Okno otvorene... Vitajte... bla, bla, bla...");
	}
	public void windowActivated(WindowEvent e) {
		System.out.println("Okno aktivne");
		l.setText("Okno aktivne");
	}
	public void windowIconified(WindowEvent e) {}
	public void windowDeiconified(WindowEvent e) {}
	public void windowDeactivated(WindowEvent e) {
		System.out.println("Deaktivovane okno");
		l.setText("Deaktivovane okno");
	}
	public void windowClosed(WindowEvent e) {
		System.out.println("Okno zavrete"); // toto sa vobec nevykona po zavreti
		l.setText("Okno zavrete");			// lebo program zrusime uz v windowClosing
		// dispose();
		// System.exit(0);
	}
}
a inak vdaka ze mi pomahas, neviem co by som bez teba robil, cmuk :D
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

konyk87 napísal:zozen si niekde napr knihu Pavel Herout - Java - Graficke uzivatelske prostredi a cestina alebo si nastuduj tie veci z Thinking in Java...v Heroutovi su vacsinou len zakladne veci, ale je to celkom fajn vysvetlene + dost zdrojakov, z ktorych sa da pochopit, co ktory komponent robi...
v TiJ tiez treba hlavne studovat zdrojaky a nie je odveci si ten-ktory program aj skompilovat a spustit...ked pochopis tak uz to pojde samo...

inak myslim, ze z takym pristupom aky ma ten balkansky sandokan, co to prednasa, sa to musel asi kazdy ucit sam :wink: a este ked chytis jednu z tych super cviciacich tak uz ti to zostava len na doma...asi preto som OOP nespravil, ale mozno to bude aj tym, ze som sa na to vykaslal a spravil som radsej fyziku a ADM a Javu som dostudoval cez leto :)
no aj to je jedna z moznosti ;) ja mam tetu Povazanovu :D

edit: sak aj ja... na nieco sa jej spytam a ona zacne o niecom inom :D lae tak snazi sa to sa musi nechať ;)
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

Používam Eclipse...

Kód: Vybrať všetko

	public Cas (Date d) {		
		this.hodina = d.getHours();
		this.minuty = d.getMinutes();
		this.sekundy = d.getSeconds();
	}
getHours, getMinutes a getSeconds mám preškrtnuté a píše mi poznámku, že The method from the type Date si deprecated....
ako to odstránim? Nie je to chyba ale špatí to :)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Namiesto triedy Date musíš použiť triedu Calendar a potom niečo ako d.get(Calendar.SECOND).
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

ako pridám objekty do JListu? uvedie mi niekto nejaký príklad?

// google nempomáha
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

kalendár

Príspevok od používateľa beluský »

chcel by som spraviť také niečo ako kalendár, ktorý by mi zobrazoval dni na zadaný mesiac a rok, proste normálny kalendár, kde by sa dalo listovať a prezerať udalosti.... ako to mám riešiť? a ešte potrebujem vypisovať nejaký ten text ale výpis do textArea sa mi zdá nepraktický a vôbec škaredý... tabuľka sa mi vidí na to zložitá...

ďakovačka za rady
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

potreboval by som do môjho pripomienkovača doprogramovať základnú vlastnosť pripomienkovača... pripomínať...

ako to mám spraviť? mám si vytvoriť nejaké vlákno, ktoré bude kontrolovať, ktorá pripominka sa má pripomenúť... nič o vláknách neviem, ešte sme ich nebrali... kto mi stručne vysvetlí ako fungujú?

ja tomui rozumiem tak, že vytvorím si nejaké vlákno, ktoré mi bude napr. 5 minút kontrolovať či je aktuálna nejaká pripomienka...?
vďaka za vysvetlenia
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

Kód: Vybrať všetko

public class Nieco extends Thread {
  public Nieco() {	
    Thread t = new Thread(this);
    t.start();
  }
  public void run() {
    //zacni cyklus
    //nieco rob
    Thread.Sleep(2000); //pocka 2000ms
    //koniec cyklu
}
po pouziti new Nieco() sa ti to automaticky spusti ako thread
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

spravil som to ale nejak mi to nechce znova spustat

v inej triede v maine spustam...

Kód: Vybrať všetko

...
Thread t = new kontrolaPrip();
t.start();
t.setPriority(Thread.MIN_PRIORITY);
...
trieda s vlaknom...

Kód: Vybrať všetko

public class kontrolaPrip  extends Thread {

    public kontrolaPrip() {
    }
        
    @Override
    public void run() { 
        System.out.println("dwa");
    }
}
preco mi to nejde?
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

kod ktory si napisal by mal raz vypisat "dwa".
robi to presne to co je tam napisane. ak chces aby sa cinnosti v druhom vlakne opakovala, musis ju dat do nejakeho cyklu
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

mastermind napísal:kod ktory si napisal by mal raz vypisat "dwa".
robi to presne to co je tam napisane. ak chces aby sa cinnosti v druhom vlakne opakovala, musis ju dat do nejakeho cyklu
som myslel, že sa to cyklí samo...

Kód: Vybrať všetko

public class kontrolaPrip  extends Thread { 

    public kontrolaPrip() { 
    } 
        
    @Override 
    public void run() { 
        while(true) {
                System.out.println("dwa");
                Sleep(1000); // 1 sekunda? 
        }
    } 
}
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

http://java.sun.com/j2se/1.4.2/docs/api ... leep(long)

robi sa to nejako tak ako si napisal, akurat ze metoda sleep pocka dany pocet milisekund a potom vyhodi InterruptedException. tu musis zachytit a pokracovat dalej. cize nejako takto:

Kód: Vybrať všetko

public class kontrolaPrip  extends Thread {

    protected boolean continueExecution = true;
public kontrolaPrip() {
    }
       
    @Override
    public void run() {
        while(this.continueExecution) {
             try {
                System.out.println("dwa");
                Sleep(1000); // 1 sekunda?
             } catch (InterruptedException e)
             {
               /* tu sa rozhodnes ci ma vlakno dalej pokracovat. ak nie, tak nastavis continueExectuion na false */
             }
    }
}
Napísať odpoveď