Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Vytvořil jsem si v aplikaci třídu pro načtení obrázku, a protože bude obrázků víc, chci si je umístit do listu, netbeans mi ale hlásí chybu na tomto řádku.

List<obrazek> list = new ArrayList<obrazek>();

Co je špatně

 
Odpovědět 2.4.2013 19:04
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na martinkobelka
Petr Nymsa:

Předpokládám že je to stejný jako v C#. Nemá tam být

List<obrazek> list = new List<obrazek>();
Nahoru Odpovědět 2.4.2013 19:09
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Zkus to takhle:

List<obrazek> list = new ArrayList<>();
Editováno 2.4.2013 19:12
 
Nahoru Odpovědět 2.4.2013 19:11
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Dobře, to už mám, Proč si ale nemůžu tento arraylist dát jako privátní proměnnou do třídy? Potřebuju ji uchovávat, a když to udělám, končí to chybou, to samé i u jiných tříd, chyba.

 
Nahoru Odpovědět 2.4.2013 19:19
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Proč musí být hlavní třída static? když v ní volám dynamickou metodu, končí to chybou, jak to udělat?

 
Nahoru Odpovědět 2.4.2013 19:22
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na martinkobelka
Hartrik:

To můžeš, jen to děláš blbě. Zkus sem část zdrojového kódu.

 
Nahoru Odpovědět 2.4.2013 19:23
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Mám jenom tohle

package vesmirnastrilecka;

import java.util.ArrayList;
import javax.swing.JFrame;

public class Vesmirnastrilecka {

    public vykresleni herniplocha;

    public static void main(String[] args) {
        JFrame okno = new JFrame();
        okno.setSize(800, 640);
        okno.setTitle("Vesmírná střílečka");
        okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        herniplocha = new vykresleni(800, 600);
        okno.add(herniplocha);
        nactiobrazky();


        okno.setVisible(true);
    }
    private void nactiobrazky() {
        ArrayList<obrazek> seznam = new ArrayList<>();
        seznam.add(new obrazek("pes.jpg", 20, 100));
        herniplocha.ulozobrazky();
    }
}
 
Nahoru Odpovědět 2.4.2013 19:26
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na martinkobelka
Hartrik:

Ten problém se statikou můžeš vyřešit třeba tak, že přesuneš kód z metody main do nějaké dynamické, třeba do konstruktoru třídy Vesmirnastrilec­ka.
Poté jen v main vytvoříš instanci.

Editováno 2.4.2013 19:35
 
Nahoru Odpovědět 2.4.2013 19:34
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Jinak názvy tříd začínají s velkými písmeny.

 
Nahoru Odpovědět 2.4.2013 19:39
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

dobře, děkuju, dal jsem to všechno do třídy vykresleni, a to načtení zavolal v konstruktoru.

 
Nahoru Odpovědět 2.4.2013 19:42
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Do třídy vykresleni to asi moc nepatří, ale pokud ti to nevadí a funguje to, tak to můžeš nechat...

 
Nahoru Odpovědět 2.4.2013 19:52
Avatar
Kit
Redaktor
Avatar
Odpovídá na martinkobelka
Kit:

Je možné, že ti v povodním příkladu chybí

import java.util.List;

ale to by ti NetBeans měl zahlásit. Když ale nenapíšeš, jakou chybu hlásí, tak se těžko věští z křišťálové koule.

"vykresleni" je název třídy, měl by začínat velkým písmenem. Zvykni si na to.

Název metody "nactiobrazky" svědčí o chybném uvažování. Obrázky přece patří k objektům a teprve tyto objekty patří do seznamu.

Nahoru Odpovědět 3.4.2013 8:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.