Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno java - vytvořte novou instanci třídy

Mohlo by být toto Vytvořte novou instanci třídy ObjectOutputStream, konstruktoru předejte jako parametr instanci FileOutputStream.
takto: ObjectOutputStream = new ObjectOutputStream(FileOutputStream);

A todle na instanci ObjectOutputStream zavolejte metodu writeObject a jako parametr jí předejte atribut zaznamy.
takto: ObjectOutputStream(writeObject(), zaznamy);
Moc díky za odpověď. A jestli to tak nemá být, tak jak tedy?
Zmena predmetu, pôvodne: java (los)

Předmět Autor Datum
1. Chýba ti tam názov premennej pre tú inštanciu (podľa mennej konvencie názov premennej pre inštanc…
los 26.04.2014 11:34
los
děkuji za odpověď:-)...když volám metodu aktualizujSeznam lze to napsat takto nebo to je kravina? pr…
davyn 27.04.2014 13:47
davyn
1. To, čo si napísal, nie je volanie metódy, ale jej deklarácia, resp. definícia. Keďže je private,…
los 27.04.2014 13:54
los
Když chci vytvořit metodu toString, která vrátí textovou reprezentaci záznamu v podobě „datum: obnos…
davyn 27.04.2014 16:18
davyn
Co podle tebe má znamenat tenhle výraz? return datum = obnos; nový
Wikan 27.04.2014 16:50
Wikan
netušim co tim je myšleno nový
davyn 27.04.2014 17:33
davyn
Vždyť jsi to psal, tak bys měl vědět, co je tím myšleno. nový
Wikan 27.04.2014 17:46
Wikan
napsal, protože jsem nevěděl vůbec co tam vrznout.. nový
davyn 27.04.2014 18:00
davyn
Takže stále jenom střelba naslepo bez nejmenšího tušení, co vlastně děláš. Stejně jako před 3 týdny.… nový
Wikan 27.04.2014 18:12
Wikan
jak u čeho:-)..a todle zavolejte metodu odeberZaznam, jako parametr jí předejte vybraný záznam, kter… nový
davyn 28.04.2014 11:13
davyn
Naprostá. Tusíš vůbec, co je třída, co je metoda, co je parametr...? nový
Wikan 28.04.2014 11:16
Wikan
zhruba nový
davyn 28.04.2014 11:25
davyn
Tohle nemůžeš vědět zhruba, to jsou naprosto základní pojmy. Něco jako by ses učil na zedníka a nevě… nový
Wikan 28.04.2014 11:30
Wikan
třída je třeba to HlavniOkno metoda nactiData() a parametr je něco v závorce:-) teď mě řekneš jak to… nový
davyn 28.04.2014 11:34
davyn
odeberZaznam(getSelectedValue()); nový
Wikan 28.04.2014 11:38
Wikan
Našel by někdo v tomto kódu ještě 3 chyby, já jsem našel jenom 2:-( private void aktualizujGraf(Dat… nový
davyn 28.04.2014 14:19
davyn
Pridal som ti tam zvýraznenie syntaxe a hneď je vidno tri chyby (viď riadky ("vteřiny", "grafu" a "t… nový
los 28.04.2014 14:56
los
To budou spíš nějaké jiné chyby, protože já to mám v programu správně jen jsem to sem asi špatně zko… nový
davyn 28.04.2014 15:41
davyn
Proč mám celej tento zápis podtrženej, to tam je tolik chyb? Nemělo by asi být:-/ try { <existující… nový
davyn 28.04.2014 18:36
davyn
Počuj, v každom normálnom IDE sa ti zobrazí presné chybové hlásenie po tom, ako vyjdeš myšou na podč… poslední
los 28.04.2014 19:05
los

1. Chýba ti tam názov premennej pre tú inštanciu (podľa mennej konvencie názov premennej pre inštanciu začína malým písmenom):

ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);

2. Volanie metódy inštancie vyzerá takto:

objectOutputStream.writeObject(zaznamy);

děkuji za odpověď:-)...když volám metodu aktualizujSeznam lze to napsat takto nebo to je kravina?
private void aktualizujSeznam(){
}

Jak by se dalo napsat rozmezí dat na - 1 měsíc až + 1 měsíc od dneška, když k tomu mám tyto příkazy: pro aktuální datum toto Calendar.getInstance() a pro příčtení a odečtení data tento calendar.add(Calendar.MONTH, -1); a calendar.add(Calendar.MONTH, +1);

1. To, čo si napísal, nie je volanie metódy, ale jej deklarácia, resp. definícia. Keďže je private, tak ju môžeš volať len v metódach triedy, v ktorej si ju deklaroval. Ak ju chceš volať z vonku, musíš ju deklarovať ako public.

2. Rozsah dátumov:

Calendar previousMonth = Calendar.getInstance().add(Calendar.MONTH, -1);
Calendar nextMonth = Calendar.getInstance().add(Calendar.MONTH, 1);

Našel by někdo v tomto kódu ještě 3 chyby, já jsem našel jenom 2:-(

private void aktualizujGraf(Date datumOd, Date datumDo) {
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
SimpleDateFormat fmt = new SimpleDateFormat("dd. mm. yyyy");
// Jeden extra prázdný záznam, aby bylo zajištěno, že i poslední
// záznam v seznamu bude přidán do grafu.
UcetniZaznam zarazka = new UcetniZaznam(0, new Date(Long.MAX_VALUE));
zaznamy.add(zarazka);
// Prochází seřazený seznam záznamů a postupně sčítá obnosy
// pro jednotlivé dny. Ve chvíli, kdy překročí hranici dne,
// přidá aktuální záznam pro vykreslení do grafu.
int stavUctu = 0;
Date posledniDatum = zaznamy.get(0).getDatum();
for (UcetniZaznam zaznam : zaznamy) {
// Porovnání formátovaných datumů vynechá z porovnání hodiny, minuty a
vteřiny
String datumZaznamuDDMMYYY = fmt.format(zaznam.getDatum());
String posledniDatumDDMMYYY = fmt.format(posledniDatum);
// Pokud se změnil den od posledního záznamu, přidáme minulý den do
grafu
if (datumZaznamuDDMMYYY != posledniDatumDDMMYYY) {
String typ = "Zisk";
if (stavUctu < 0)
typ = "Ztráta";
if (posledniDatum.compareTo(datumOd) >= 0 &&
posledniDatum.compareTo(datumOd) <= 0)
dataset.addValue(stavUctu, typ, posledniDatumDDMMYYY);
}
posledniDatum = zaznam.getDatum();
stavUctu += zaznam.getObnos();
}
// Odebrání zarážky
zaznamy.remove(zaznamy.size() - 1);
JFreeChart chart = ChartFactory.createBarChart3D("Stav účtu", "Datum",
"Zůstatek", dataset, PlotOrientation.VERTICAL, false, true, false);
// Nastaví barvu kladné řady na zelenou a záporné řady na červenou
// pomocí upravené třídy DefaultDrawingSupplier.
// Aby nebylo nutné vytvářet nový soubor, použije se anonymní vnitřní
třída,
// ve které je přepsána metoda, která vrací barvu.
chart.getPlot().setDrawingSupplier(new DefaultDrawingSupplier() {
int index = 0;
@Override
public Paint getNextPaint() {
if (index++ == dataset.getRowIndex("Zisk"))
return Color.GREEN;
else
return Color.RED;
}
});
ChartPanel panel = new ChartPanel(chart);
jSplitPane1.setRightComponent (panel);
}

Pridal som ti tam zvýraznenie syntaxe a hneď je vidno tri chyby (viď riadky ("vteřiny", "grafu" a "třída,"). Riadkový komentár (dve lomítka) je ukončený znakom nového riadku a všetko na ďalšom riadku sa už berie ako kód, ktorý sa kompiluje. Keď chceš s komentárom pokračovať na ďalšom riadku, tak na tom ďalšom riadku musíš znova použiť tie dve lomítka, ináč tam budeš mať syntaktickú chybu.

Tiež odporúčam používať odsadzovanie.

Proč mám celej tento zápis podtrženej, to tam je tolik chyb? Nemělo by asi být:-/
try { <existující kód v metodě> } catch (Exception ex) { <kód pro obsluhu chyby>

jFileChooser.showSaveDialog(this);

FileOutputStream = new FileOutputStream(dialog.getSelectedFile());
close();
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
close();

objectOutputStream.writeObject(zaznamy);

JOptionPane.showMessageDialog(ex.getMessage());
}
}

Počuj, v každom normálnom IDE sa ti zobrazí presné chybové hlásenie po tom, ako vyjdeš myšou na podčiarknutý kód. Okrem toho, všetky chyby sa zobrazujú na jednom mieste, kde ich vidíš zoradené. Takže ak nevieš, v čom je problém, tak skopíruješ to hlásenie do Googla a prídeš na to sám.

Zpět do poradny Odpovědět na původní otázku Nahoru