IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: java a list

Aktivity
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:2.4.2013 19:04

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
Tvůrce
Avatar
Odpovídá na martinkobelka
Petr Nymsa:2.4.2013 19:09

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
Tvůrce
Avatar
Hartrik:2.4.2013 19:11

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
Tvůrce
Avatar
martinkobelka:2.4.2013 19:19

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
Tvůrce
Avatar
martinkobelka:2.4.2013 19:22

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
Tvůrce
Avatar
Odpovídá na martinkobelka
Hartrik:2.4.2013 19:23

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
Tvůrce
Avatar
martinkobelka:2.4.2013 19:26

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
Tvůrce
Avatar
Odpovídá na martinkobelka
Hartrik:2.4.2013 19:34

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
Tvůrce
Avatar
Hartrik:2.4.2013 19:39

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

 
Nahoru Odpovědět
2.4.2013 19:39
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:2.4.2013 19:42

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
Tvůrce
Avatar
Hartrik:2.4.2013 19:52

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
Tvůrce
Avatar
Odpovídá na martinkobelka
Kit:3.4.2013 8:48

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.