Veľkonočná akcia je tu a s ňou aj extra kredity ZADARMO na náš interaktívny e-learning. Dobij si teraz kredity a posuň sa vo svojej kariére vpred!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – Java GUI

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Luboš Běhounek Satik
Kit:29.3.2013 20:24

Zkusil jsem si dva cykly. V jednom jsem před dělením testoval, zda je dělitel nenulový, ve druhém jsem uvnitř cyklu měl try...catch. Cyklus s výjimkami byl nepatrně rychlejší než cyklus, ve kterém se testovala nenulovost dělitele. Výjimky jsou tedy lepší.

Pokud však k výjimce došlo při každém průchodu cyklem, zpracování se zpomalilo zhruba 1000×. To však nehraje roli, protože k výjimkám obvykle dochází výjimečně :)

Můj obstarožní NTB na 700 MHz v cyklu zpracoval zhruba 30000 výjimek dělení nulou za sekundu, takže něco máš asi špatně...

Odpovedať
29.3.2013 20:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovedá na Kit
Luboš Běhounek Satik:30.3.2013 14:38

Máš pravdu, zapomněl jsem, že se mi výjimky vypisují do konzole, bez toho výpisu se jich stihne provést víc, cca 50 000 za sekundu, ale pořád jsou mnohem mnohem pomalejší, než cokoliv jiného.

Pošli kód, protože pokud cyklus s výjimkami byl rychlejší než cyklus s podmínkou, tak tam máš nějakou chybu, protože už z logiky fungování výjimek je to úplný nesmysl - vždyť porovnání hodnoty, jestli není nula, je jedna jednoduchá jnz nebo jz instrukce navíc, zatímco u výjimek se (kromě uložení stavů některých registrů procesoru) přidávají nějaká data pro obsluhu výjimky na zásobník...

Editované 30.3.2013 14:39
Odpovedať
30.3.2013 14:38
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Luboš Běhounek Satik
Kit:30.3.2013 17:36

Zkusím opsat z hlavy kód, který jsem použil. S podmínkou:

int x;
for (int i = 0; i < 1000000000; i++) {
   if (i != 0) {
      x = 2000000000 / i;
   } else {
      x = 0;
   }
}

S výjimkou:

int x;
for (int i = 0; i < 1000000000; i++) {
   try {
      x = 2000000000 / i;
   } catch (Exception e) {
      x = 0;
   }
}

S výjimkou to bylo cca o 1 % rychlejší než s podmínkou.

Odpovedať
-1
30.3.2013 17:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:30.3.2013 23:09

Když chcu přidávat do formuláře prvky pomocí GridBagConstraints, tak mi to zobrazuje výjmku, nevíte čím to je? kod :

package snake;

import java.awt.Color;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JLabel;

class Windows extends JFrame{
    public void kresli(){
        setTitle("Kalkulačka");
        setSize(450, 700);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container con = getContentPane();

        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(10, 10, 10, 10);

        JLabel labCislo1 = new JLabel("Zadejte první číslo:");
        gbc.gridx = 1;
        gbc.gridy = 1;

        con.add(labCislo1, gbc);



        setVisible(true);
    }
}
 
Odpovedať
30.3.2013 23:09
Avatar
Samik11
Tvůrce
Avatar
Odpovedá na martinkobelka
Samik11:30.3.2013 23:32

Nikde jsi layout nepřidal, to se dělá metodou:

setLayout()

Popravdě moc nechápu jak máš ten kód členěný. Podstatou je, že si vytvoříš třídu která dědí z JFrame, v tvém případě Windows a pak v hlavní metodě vytvoříš objekt této třídy. Zkus si projít ty předchozí díly. Případně stáhni zdrojáky. :-)

Odpovedať
30.3.2013 23:32
„Radost vidět a rozumět, to je nejkrásnější dar přírody.“ Albert Einstein
Avatar
niveses
Tvůrce
Avatar
niveses:31.5.2013 17:22

Co lze udělat pro výsledky v mínusech?

 
Odpovedať
31.5.2013 17:22
Avatar
dNtichy
Člen
Avatar
dNtichy:29.10.2013 23:55

Mozem natiahnut component aj cez viac buniek tabulky gridbaglayoutu ako len cez 1?

 
Odpovedať
29.10.2013 23:55
Avatar
D0ll0k
Člen
Avatar
D0ll0k:25.5.2014 21:08

Já jsem tu nový a začínám "programovat". Chci se zeptat kam přesně mám vložit řádky po tom, co se zpátky vracíme k actionPerformed. Já jsem je vložil do třídy Event. Jenomže mi to hlásí chybu: Source not found. Mohl by prosím někdo říct kam je mám vložit?

Odpovedať
25.5.2014 21:08
Veni, vidi, programmato
Avatar
D0ll0k
Člen
Avatar
Odpovedá na D0ll0k
D0ll0k:11.6.2014 7:24

Tak už nic. Našel jsem to. Zapoměl jsem přidal GridBagLayout. Toto tady chybi, jak to zapsat. Musel jsem si to stáhnout a podívat se.

Odpovedať
11.6.2014 7:24
Veni, vidi, programmato
Avatar
reguluscentauri:29.11.2015 22:21

Zdravím,
chtěl bych se jen zeptat, kde dělám chybu
Když vložím GridBagConstraints gbc = new GridBagConstra­ints(), tak mi to vypíše chybu, vytvořím tedy podle návrhu Netbeans class pro gbc, do toho pak musim vložit
Insets insets;
int gridx;
int gridy;
A umazat tam final

A při spuštění mi netbeans vypíše
Exception in thread "main" java.lang.Ille­galArgumentEx­ception: cannot add to layout: constraints must be a GridBagConstraint

Kód jsem porovnal se zdrojákem odsud a je stejný až na to, že autor tam nemá class pro gbc. Je nějaká varianta, jak to obejít, která mi unikla nebo v čem může být problém?

Předem děkuji

 
Odpovedať
29.11.2015 22:21
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 23.