Volanie Frame z metódy – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Volanie Frame z metódy – Java – Fórum – Programujte.comVolanie Frame z metódy – Java – Fórum – Programujte.com

 

Anonym
~ Anonymní uživatel
454 příspěvků
25. 3. 2014   #1
-
0
-

Ahojte, mám jednu otázku. 

Používam editor NetBeans, vytvoril som si Frame kde som si popodával zopár tlačidiel. Taktiež som si vytvoril triedu a v nej časovač. Rád by som sa spýtal, akým spôsobom môžem z tejto triedy lokalizovať napr. Jlabel1 a napr. mu nastaviť inú pozíciu?

Ide mi hlavne o otázku, ako z triedy zavolať prvok v GUI.

Ďakujem veľmi pekne za pomoc.

Anonym

Nahlásit jako SPAM
IP: 95.105.244.–
Whowky0
Newbie
26. 3. 2014   #2
-
0
-

A nebylo by lepší volat z GUI metodu třídy která bude mít na starosti například to přesouvání tlačítka?
např:
 

public class GUI extends javax.swing.JFrame {

    
    Trida t = new Trida();

.
.
.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jButton1.setLocation(jButton1.getX() + t.get_X(), jButton1.getY() + t.get_Y());
    } 

a třída

 

package metody;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class Trida implements ActionListener {
    
    private final Timer timer;
    private int X = 0;
    private int Y = 0;    

    public Trida() {
        timer = new Timer(1000, this);
        timer.start();
    }
    
    public int get_X() {
        return X;
    }
    
    public int get_Y() {
        return Y;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        X++;
        Y++;
    }
}

Pokud bys chtěl pracovat s metodami konkrétního tlačítka musíš ho předat jako argument
 

import javax.swing.JButton;


public class Tlacitko {
    
    private final JButton tlacitko;

    public Tlacitko(JButton m_tlacitko) {
        this.tlacitko = m_tlacitko;
    }
    
    void posun(int pos_X, int pos_Y) {
        tlacitko.setLocation(pos_X + 1, pos_Y + 1);
    }
}
Nahlásit jako SPAM
IP: 92.245.198.–
Anonym
~ Anonymní uživatel
454 příspěvků
26. 3. 2014   #3
-
0
-

#2 Whowky

Ďakujem za odpoveď, môj problém je hlavne v tom, že v triede mám napísaný časovač a chcem, aby si napr. Label, alebo podobne posúval každým tikom časovača. Ako by som to spravil? V triede mám pekne implementovaný TImer a aj actionPerformed len neviem ako ďalej postupovať.

Vďaka za rady

Nahlásit jako SPAM
IP: 95.105.244.–
Whowky0
Newbie
27. 3. 2014   #4
-
0
-

#3 Anonym
Tak to pak jedině asi budeš muset tu metodu rozšířit "extends"
=>
 

package metody;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.Timer;

public class SuperButton extends JButton implements ActionListener {
    
    private final Timer timer;
    private int X = 0;
    private int Y = 0;

    public SuperButton() {
        setVisible(true);
        setText("tlacitko");
        setBounds(X, Y, 90, 30);
        timer = new Timer(1000, this);
        timer.start();
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        X++;
        Y++;
        setBounds(X, X, 90, 30);
        this.repaint();
    }
    
}

A v JFrame pak
 

package metody;

import javax.swing.JButton;

public class Okno extends javax.swing.JFrame {

    private final JButton tlacitko;
    
    public Okno() {
        initComponents();
        tlacitko = new SuperButton();       
        this.add(tlacitko);
    }

.
.
.
.
.
Nahlásit jako SPAM
IP: 92.245.198.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý