Vytvoření a přístup k vlastnostem objektů stejného typu pomocí indexů – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytvoření a přístup k vlastnostem objektů stejného typu pomocí indexů – Java – Fórum – Programujte.comVytvoření a přístup k vlastnostem objektů stejného typu pomocí indexů – Java – Fórum – Programujte.com

 

1. 11. 2010   #1
-
0
-

Ahoj,
vytvářím momentálně prográmek, ve kterém se bude naneštestí muset vyskytovat nějakých 40 tlačítek typu jButton. Co se mi ale nechce (a pro účely školní práce to vypadá strašně) je ručně vypisovat 40x vytvoření tlačítka, 40x nastavení listenerů (a to nemluvím o nastavení ikon a podobných ptákovinách).

Chtěl bych se proto zeptat, jestli existuje nějaký mechanismus, který by mi v konečném důsledku dovolil něco typu

for (int i = 1; i <= 40; i++) {

JButton tlacitko[i] = new JButton;
tlacitko[i].addActionListener(this);
tlacitko[i].enable();
}

abych pak mohl hromadně měnit atributy tlačítek přes řekněme ten cyklus for..
Přes ButtonGroup se mi nezadařilo a k ArrayList se mi nepodařilo najít nic přiměřeně srozumitelně vysvětleného...

Díky moc za každou radu :)

Nahlásit jako SPAM
IP: 147.32.125.–
petr.satka0
Newbie
1. 11. 2010   #2
-
0
-

To KingScorpion :
Jestli jsem to správně pochopil, tak chceš tohle?



private final JButton[] jButtons = new JButton[40];

private void makeButtons() {
Container cont = getFrame().getContentPane();
FlowLayout layout = new FlowLayout();
cont.setLayout(layout);
for (int i = 0; i < jButtons.length; i++) {
jButtons[i] = new JButton("btn"+Integer.toString(i));
//jButtons[i].addActionListener(null);
cont.add(jButtons[i]);
}
}

Nahlásit jako SPAM
IP: 217.112.175.–
1. 11. 2010   #3
-
0
-

Jo, to bude asi ono.. Díky :)
Zkusil jsem to vložit do kostry programu, kompilátor to schválil (hurá), jenže i přes nastavení zobrazovaní to kromě vykreslení okna o neodpovídajích proporcích neudělá nic (a jako bonus se okno vykresluje opravdu jen když se mu chce = skoro vůbec).
Mohl bych poprosit o kontrolu kódu, kde by mohla být chyba?

import java.awt.*;

import javax.swing.*;

public class Main {

public static void main(String[] args) {
Okno okno = new Okno();
}
}

class Okno extends JFrame{
public static JButton[] jButtons = new JButton[40];

public void Okno() {
setSize(500, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
Container kon = getContentPane(); //getFrame().
FlowLayout layout = new FlowLayout();
kon.setLayout(layout);
for (int i = 0; i < jButtons.length; i++) {
jButtons[i] = new JButton("btn"+Integer.toString(i));
jButtons[i].addActionListener(null);
jButtons[i].setBounds(40+(i%4)*15, 40+(i/4)*15, 10, 10);
jButtons[i].setVisible(true);
kon.add(jButtons[i]);}
setContentPane(kon);

}
}


Díky ;)

Nahlásit jako SPAM
IP: 147.32.125.–
petr.satka0
Newbie
1. 11. 2010   #4
-
0
-

To KingScorpion :
U konstruktoru nesmíš mít návratový typ (void). Pak to není konstruktor :)

public Okno()

Nahlásit jako SPAM
IP: 217.112.175.–
1. 11. 2010   #5
-
0
-

Ha.. Ono to funguje.. Teď už to ta tlačítka zobrazuje.. Moc díky za help :)

Nahlásit jako SPAM
IP: 147.32.125.–
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, 30 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ý