Anonymní profil Pavel – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Pavel – Programujte.comAnonymní profil Pavel – Programujte.com

 

Příspěvky odeslané z IP adresy 85.13.126.–

Java › Jak ošetřit zadávání data (…
29. 4. 2013   #175561

#2 sleepy
Něco takového by určitě šlo   Upřímně - chtěl jsem se vyhnout regulárním výrazům, protože je moc osobně nemusím a chtěl použít kalendářů, co Java poskytuje (Calendar, GregorianCalendar) apod. Dneska jsem byl na konzultaci a učitelovi je dokonce úplně jedno, jestli tam zadám 0.0.0000 nebo co... Mám na to ještě týden, tak něco vymyslím. Nechci to nechat tak, aby prošlo nesmyslné datum.

Díky moc za odpověď, na tvůj způsob se ještě určitě podívám   

Java › Jak ošetřit zadávání data (…
29. 4. 2013   #175547

Ahoj,
dělám semestrální práci a mám ji téměř hotovou, ale narazil jsem na problém, se kterým si nevím rady. Mám program, který udržuje v prioritní frontě seznam kulturních akcí a pro komfort musím vytvořit jednoduché grafické prostředí. Programuji v Netbeans. Teď k problému.

Každá kulturní akce si nese název akce, datum konání (chtěl bych ve formátu DD.MM.YYYY), místo konání a čas začátku. Můj problém je v tom, že nevím, jak ošetřit vstupní zadávaný formát data, který uživatel vyplní. Zkoušel jsem to řešit přes GregorianCalendar, Calendar apod., ale nikdy jsem se nedočkal správného výsledku. Jakmile zadám například "22.10.", "22.1.", tak je vše v pořádku, zachytím chybu a vypíšu hlášku, že formát vkládaného data je špatný. Jakmile ale zadám například "22.10.2", "22.10.20" nebo "22.10.201", tak mi program spadne s chybou "java.lang.StringIndexOutOfBoundsException". Mě je jasné, proč, ale netuším, jak to vyřešit.

Můj kód:

private void buttonVlozAkciActionPerformed(java.awt.event.ActionEvent evt) {                                               
        String datum = textfieldDatumKonani.getText();
        if (!jeSpravnyFormatData(datum)) {
            textareaVypis.append("Špatně zadané parametry akce!\n");
            return;
        }
        String nazevAkce = textfieldNazevAkce.getText();
        String mistoKonani = textfieldMistoKonani.getText();
        int zacatekAkce = Integer.parseInt(textfieldCasZacatku.getText());
        int den = Integer.parseInt(datum.substring(0, 2));
        int mesic = Integer.parseInt(datum.substring(3, 5));
        mesic -= 1;
        String zadanyRok = datum.substring(6, 10); // zde je problém s tou výjimkou
        if (zadanyRok.length() != 4) {
            textareaVypis.append("Špatně zadané parametry akce!\n");
            return;
        }
        int rok = Integer.parseInt(zadanyRok);
        GregorianCalendar zadaneDatum = new GregorianCalendar(rok, mesic, den);
        if (jeVseZadane(nazevAkce, zadaneDatum, mistoKonani, zacatekAkce)) {
            KulturniAkce novaAkce = new KulturniAkce(nazevAkce, zadaneDatum,
                    mistoKonani, zacatekAkce);
            kulturniAkce.vloz(novaAkce);
            vypisAkci(novaAkce);
        } else {
            textareaVypis.append("Špatně zadané parametry akce!\n");
        }

    }

Nevíte někdo jak to jednoduše ošetřit? To GUI není podstatnou náplní práce, takže bych to chtěl řešit opravdu co nejjednodušeji, hlavně aby to fungovalo. Ještě bych doplnil, že pole pro vkládání data je typu JTextField.

Děkuji za pomoc...

C / C++ › Čtení z binárního souboru a…
15. 1. 2013   #170195

#12 Mr. Bro
A co by to mělo dělat?    Mě to vypisuje pořád nesmysly...

C / C++ › Čtení z binárního souboru a…
15. 1. 2013   #170193

#10 Mr. Bro
Abych řekl pravdu, tak vůbec nevim co to znamená... A asi ani nechápu, kam to mám vložit. Můžeš to prosím nějak blíž popsat? Díky

C / C++ › Čtení z binárního souboru a…
14. 1. 2013   #170191

#8 vitamin
To mě teda nepustí... Píše to: expected an expression (chybí výraz)

C / C++ › Čtení z binárního souboru a…
14. 1. 2013   #170188

#6 vitamin

tOsoba obsahuje to co píšeš:

typedef struct osoba
{
	char jmeno[20];
	char prijmeni[20];
	char titulPred[7];
	char titulZa[7];
	char telefon[20];
	char mail[30];
} tOsoba;

Já ale nepotřebuju zapisovat do souboru. Mě stačí z binárního souboru dostat data a ty vypsat na obrazovku. To nic ale nemění na tom, co píšeš... Jedině nahradit ty NULL hodnoty natvrdo prázdným znakem (po přečtení řádku), ale taky nevim, jestli to zafunguje...

C / C++ › Čtení z binárního souboru a…
14. 1. 2013   #170186

#4 vitamin
Souhlasím, takhle to vypadá dobře. Kdysi jsem ale ten prográmek psal a vím, že to nebylo nutný dělat takhle "složitě"... Stačilo znát velikost struktury (ta je konstantní). Nevím, proč mi to nefunguje. Problém je s NULL hodnotama. Zkusím to ještě nějak pořešit (ten můj způsob). Ale díky moc za užitečnou ukázku  

C / C++ › Čtení z binárního souboru a…
14. 1. 2013   #170184

#2 vitamin
Takže myslíš tak, že bych se pohyboval v tom binárním souboru pomocí fseek, vždycky si uložil ten řetězec a takhle pro vše? Místo fread, kde to neovlivním... Nebo ještě jinak?

C / C++ › Čtení z binárního souboru a…
14. 1. 2013   #170182

Ahoj,
nedaří se mi rozumně vypsat data načtená z binárního souboru. Mám binární soubor, který obsahuje informace o dané osobě - jméno, příjmení, titul před jménem, titul za jménem, telefon a mail. První řádek výpisu mi funguje bez problému (osoba má všechny informace vyplněné), další už se nezobrazí korektně a myslím si, že to bude tím, že některé informace vyplněné nemá (nemá titul před jménem).

Zdrojové kódy:
osoba.c:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "osoba.h"

tOsoba *alokujOsobu()
{
	tOsoba *novaOs = NULL;

	novaOs = (tOsoba*) malloc(sizeof(tOsoba));

	return novaOs;
}

void vypisOsobu(tOsoba* os)
{
	printf("Vypis osoby:\n");
	printf("%s %s %s %s\n", os->titulPred, os->jmeno, os->prijmeni, os->titulZa);
	printf("Telefon: %s\n", os->telefon);
	printf("Mail: %s\n\n", os->mail);
}

seznam.c:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "seznam.h"
#include "osoba.h"

tOsoba **poleUkOsob = NULL;
int velikostPole = 0;

void nacti(char *nazevSouboru)
{
	FILE *soubor = NULL;
	int i;
	tOsoba *novaOs = NULL;

	soubor = fopen(nazevSouboru, "rb");
	fseek(soubor, 0, SEEK_END);
	velikostPole = ftell(soubor) / sizeof(tOsoba);
	fseek(soubor, 0, SEEK_SET);
	poleUkOsob = (tOsoba**) calloc(velikostPole, sizeof(tOsoba*));

	for(i = 0; i < velikostPole; i++)
	{
		novaOs = alokujOsobu();
		fread(novaOs, sizeof(tOsoba), 1, soubor);		
		
		poleUkOsob[i] = novaOs;
	}
	fclose(soubor);
}

void vypis(char *retezec)
{
	int i;

	if(retezec == NULL)
	{
		for(i = 0; i < velikostPole; i++)
		{
			printf("Osoba %d:\n", i + 1);
			vypisOsobu(poleUkOsob[i]);
		}
	}
	else
	{
		for(i = 0; i < velikostPole; i++)
		{
			if(strstr(poleUkOsob[i]->prijmeni, retezec) != NULL)
			{
				vypisOsobu(poleUkOsob[i]);
				break;
			}
		}
		printf("Shoda se zadanym retezcem nenalezena!\n");
	}
}

main.c:

#include <stdlib.h>
#include <stdio.h>
#include "osoba.h"
#include "seznam.h"

int main()
{
	char *nazevSouboru = NULL, prijmeni[20];

	nazevSouboru = "osoby.bin";
	if(nazevSouboru == NULL)
	{
		printf("Soubor nenalezen!\n");
		return 0;
	}
	nacti(nazevSouboru);
	printf("Vypis vsech osob:\n\n");
	vypis(NULL);
	printf("Zadejte prijmeni, ktere chcete hledat: ");
	scanf("%s", prijmeni);
	vypis(prijmeni);

	system("pause");
	return 0;
}

Díky moc za rady, já už nevím, čím by to mohlo být. Podle mě se nesprávně posouvám v tom binární kódu (po jiných blocích paměti než potřebuju)...

EDIT: Přidávám screen problému pro představu...

C / C++ › Porovnání dvou řetězců v poli
4. 1. 2013   #169745

Nevíte někdo prosím co by mohlo tuto chybu vyřešit? Přistupuju někam do nepřidělené paměti, ale nevim proč najednou...

C / C++ › Porovnání dvou řetězců v poli
4. 1. 2013   #169743

#4 vitamin
Už tomu rozumím. Nejspíš chtěl tedy použít funkci na porovnání řetězců jak píšeš. Tvoje varianta co máš dole:

int jeVPoli(tPamatka **polePamatek, tPamatka *pamatka){
	for(int i = 0; i < 3; i++)
		if(polePamatek[i] == pamatka)
			return 0;
		
	return 1;
}

mi nefunguje. Spustí to nějakej breakpoint v heapu nebo co to píše. Přes strcmp by se mi to líbilo, ale taky to nějak nejede:

for(i = 0; i < 3; i++)
	{
		porovnej = strcmp(polePamatek[i]->pamatka, pamatka->pamatka);
		if(porovnej == 0)
		{
			return 0;
		}
	}
	return 1;

Toto to hlásí:

Chyba: Unhandled exception at 0x58E21F50 (msvcr110d.dll) in UJC_SemestralniPrace_V1.exe: 0xC0000005: Access violation reading location 0x00000000.

C / C++ › Porovnání dvou řetězců v poli
4. 1. 2013   #169741

#2 crazy
To je vše co tím myslel?

C / C++ › Porovnání dvou řetězců v poli
4. 1. 2013   #169739

Ahoj,
včera jsem zde zakládal téma ohledně semestrální práce. Byla mi ohodnocena jako už tak vyhovující, ale pořád by se dalo něco zlepšit. Dostalo se mi takovéto odpovědi od učitele:

"int jeVPoli(tPamatka **polePamatek, tPamatka *pamatka); - myšlenka OK, ALE!!!, neporovnávejte však adresy řetězců, ale celé řetězce. Nevím co bylo přesně vaším záměrem, ale pokud byste si ukládal do pole kopie záznamů tento způsoby by nebyl funkční."

Nějak mu nerozumím, co tím myslel. Abych vás uvedl do problému. tPamatka je struktura, která vypadá takto:

typedef struct pamatka
{
	char pamatka[21];
	tGPS gps;
	struct pamatka *dalsi;
} tPamatka;

Funkce jeVPoli je napsaná takto:

int jeVPoli(tPamatka **polePamatek, tPamatka *pamatka)
{
	int i;

	for(i = 0; i < 3; i++)
	{
		if(polePamatek[i]->pamatka == pamatka->pamatka)
		{
			return 0;
		}
	}
	return 1;
}

Jejím úkolem je prohledat pole památek o maximální velikosti 3 památek (mám najít 3 nejbližší památky s daným GPS souřadnicím) a zkontrolovat, zda se v něm památka nachází. Reakce učitele tedy je (pokud dobře rozumím), že porovnávám adresy dvou památek místo jejich řetězců. Mě to však není jasné. V "ifu" porovnávám památku na pozici "i" s jejím názvem s památkou předanou parametrem a jejím názvem.

Díky za rady  

Java › Vytvoření UML diagramu z nač…
19. 4. 2012   #156815

Ahoj,
jako bakalářskou práci mám vytvořit program, který bude vytvářet UML diagram z načteného kódu. Hledám nejlepší řešení, jak bych mohl analyzovat načtený kód a vytvořit z něj UML diagram.

Mám několik problému, se kterými si moc nevím rady.

Například mezery v kódu: 

[mezera][mezera]public[mezera]class[mezera][mezera][mezera]Trida[mezera]{
[prazdny radek]
private[mezera][mezera]int[mezera]auto;
[prazdny radek]
}

Zkoušel jsem načítat jednotlivé řádky a pomocí metody split nad Stringem rozsekávat text a získat tak jednotlivá slova, ale problém je s mezerama.

Dál taky nevím, jak bych řešil veškerý objekty v Javě, všechny třídy apod. Kdybych měl například:


BufferedReader br = null;
ArrayList<String> = new ArrayList<String>();

Nejprve jsem to chtěl řešit enumem na klíčová slova, ale to by v tomhle případě nepomohlo...

Nemáte někdo prosím nápad, jak by to šlo udělat jednodušeji? Možná se to snažím řešit moc složitě a neohrabaně...
Díky moc za rady!

Java › ActionListener na JButton ne…
6. 4. 2012   #156124

#13 Antilles
Horší je, že to dělám od odpoledne (s přestávkama)... A teď mi tam ukážou, že to jde udělat tak jednoduše  

EDIT: Zde přikládám pro ukázku kód... Jak je to jednoduché oproti tomu, co jsem psal výše...

// vytvoreni moznosti pro tlacitka
        Object[] moznostiTlacitek = {"Ano", "Ne"};

        int n = JOptionPane.showOptionDialog(this, "Opravdu chcete ukončit"
                + " program?",
                "Ukončit program",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
                null, moznostiTlacitek, moznostiTlacitek[0]);
        
        if (n == 0) {
            // kdyz vybereme "Ano" (moznostiTlacitek[0]), ukoncime program
            System.exit(0);
        }

Výsledek:

Java › ActionListener na JButton ne…
6. 4. 2012   #156122

#11 Antilles
No abych řekl pravdu, ani nad tím teď nebudu přemýšlet... Jsem rád, že můžu jít spát s čistou hlavou  

Ještě mi tam poradili odkaz oficiálních stránek na dokumentaci (cože samozřejmě znám), kde je návod, jak si lehce udělat vlastní popis tlačítek přes jednoduchý JOptionPane.showOptionDialog()... To jsem myslel, že sebou seknu   
Je to zhruba v půlce stránky. Stačí si vytvořit objekty, které se pak jednoduše přidají... Takže jdu celou tu práci smazat a napsat to 3 řádky  

Je to pro mě ponaučení, že stačilo číst.

Snad to někomu pomůže, dávám vyřešeno.

EDIT: zapomněl jsem ten odkaz: http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

Java › ActionListener na JButton ne…
5. 4. 2012   #156120

   

Chce se mi brečet   Celý problém byl v tom, že jsem vytvářel actionListenery po nastavení dialogového okna na true. Já hledal úplně jiný chyby  

Takže celý kód je správně, stačí ty actionListenery vložit nad:

dialogOkno.setVisible(true);
Java › ActionListener na JButton ne…
5. 4. 2012   #156119

#8 Antilles
To mi kámoš taky říkal... Ať zkusím JFrame. Ale nevidím důvod, proč by to tady nemělo jít.

Každopádně díky za rady...   Napsal jsem na stackoverflow, tak uvidíme, jestli se toho tam někdo ujme   
Když se něco dozvím, podělím se...

Java › ActionListener na JButton ne…
5. 4. 2012   #156114

#6 Antilles
Tak restart IDE nepomohl... Ale dobrej nápad, jednou mi to pomohlo   
Máš bohužel pravdu s tím zkoušením. Na tohle jsem bohužel asi krátkej... Tady fakt není co vymýšlet  

Já GUI dělám co jde přes návrhář. Je to jednodušší, rychlejší... Pak ale přijde moment, kdy potřebuju udělat něco svého a problém je na světě. Co provádí návrhář snad vím docela dobře, samozřejmě ne vše... Ještě mě napadlo, jestli není nějak ten JDialog špatně propojený s JButtonama... Ale tam metoda add() snad musí stačit.

Java › ActionListener na JButton ne…
5. 4. 2012   #156111

#4 Antilles
Tak jsem zkusil i tvůj další nápad s AbstractAction a bohužel se i tak nic neděje... Já to prostě nechápu. Asi bude problém někde uvnitř, protože si to okno vytvářím sám... Kdo ví, co ještě nastavuje sama Java, když si dělám návrh v GUI...

Díky moc za rady, zatím to bohužel nevede k řešení...
Já jdu hledat, co všechno se děje, když si nakliknu button například do JPanelu a uvidím, jestli to k nečemu bude.

Kdybych na něco přišel, tak se určitě podělím...

EDIT: Když se dívám, co se děje při vytvoření tlačítka přes návrhář Javy, tak je to totožný s tím, co se dělám já... Opravdu netuším, kde je chyba.

Java › ActionListener na JButton ne…
5. 4. 2012   #156106

#2 Antilles
Určitě do nich vidíš, jsou tam   Jen si je nejspíš přehlédnul... Tady jsou:

private void buttonAnoActionPerformed(ActionEvent e) {
                dialogOkno.setVisible(false);
            }

private void buttonNeActionPerformed(ActionEvent e) {
                dialogOkno.setVisible(false);
            

Je to pouze nastavení toho dialogového okna tak, aby bylo neviditelné. "Souty" jsem samozřejmě zkoušel. Nevypisují bohužel nic. To jsem zapomněl napsat. Dál už ale nevím, kde mám právě hledat. Tam snad není co zkazit...

Java › ActionListener na JButton ne…
5. 4. 2012   #156100

Ahoj,
mám problém s odchycením stisknutí tlačítka a už si nevím rady. Nejspíš tam bude někde nějakej "překlep", jinak fakt už nevím. Všechny potřebný metody snad mám. Jde o to, že si vytvářím JDialog na míru... Ale nedaří se mi reagovat na tlačítka... Přikládám screen toho JDialogu pro představu a samozřejmě kód...

A zde je kód...

private void zobrazInfoNovyUML() {
        // vytvoreni dialogoveho okna pro vytvoreni noveho UML diagramu
        final JDialog dialogOkno = new JDialog(this, "Vymazat aktuální UML diagram"
                + " a jeho soubory", true);
        // popis akce JTextArea, ktera se po potvrzeni provede
        JTextArea popisDialogOkna = new JTextArea("Opravdu chcete vymazat aktuální\n"
                + "UML diagram a jeho soubory z programu?   ");
        // zamezeni editovani popisu akce JTextArea
        popisDialogOkna.setEditable(false);
        // nastaveni pozadi popisu akce JTextArea
        popisDialogOkna.setBackground(new Color(220, 220, 220));
        // zruseni ohraniceni popisu akce JTextArea
        popisDialogOkna.setBorder(null);
        // nastaveni pozadi dialogoveho okna
        dialogOkno.getContentPane().setBackground(new Color(220, 220, 220));
        // nastaveni dialogoveho okna na zavreni po stisknuti krizku
        dialogOkno.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        // nastaveni dialogoveho okna jako modalni - nejprve se musi okno potvrdit
        dialogOkno.setModal(true);
        // zamezeni zmeny velikosti dialogoveho okna
        dialogOkno.setResizable(false);
        // nastaveni layoutu dialogoveho okna
        dialogOkno.setLayout(new FlowLayout());
        // nastaveni velikosti dialogoveho okna
        dialogOkno.setSize(310, 100);
        // nastaveni, kde se ma dialogoveho okno zobrazovat - uprostred obrazovky
        dialogOkno.setLocation((int) rozmeryOkna.getWidth() / 2,
                (int) rozmeryOkna.getHeight() / 2);
        // nastaveni rozmeru tlacitek v dialogovem okne
        Dimension rozmeryTlacitek = new Dimension(60, 25);
        // vytvoreni jednotlivych tlacitek
        JButton buttonAno = new JButton("Ano");
        JButton buttonNe = new JButton("Ne");
        // nastaveni dane velikosti pro jednotliva tlacitka
        buttonAno.setPreferredSize(rozmeryTlacitek);
        buttonNe.setPreferredSize(rozmeryTlacitek);
        // pridani tlacitek a JTextArea do dialogoveho okna
        dialogOkno.add(popisDialogOkna);
        dialogOkno.add(buttonAno);
        dialogOkno.add(buttonNe);
        // nastaveni dialogoveho okna na viditelne
        dialogOkno.setVisible(true);

        buttonAno.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                buttonAnoActionPerformed(e);
            }

            private void buttonAnoActionPerformed(ActionEvent e) {
                dialogOkno.setVisible(false);
            }
        });

        buttonNe.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                buttonNeActionPerformed(e);
            }
            
            private void buttonNeActionPerformed(ActionEvent e) {
                dialogOkno.setVisible(false);
            }
        });
    }

Děkuji za jakékoliv rady...  

Java › Kódování textu [Netb
3. 4. 2012   #155977

Ahoj,

pracuji na bakalářské práci a nemůžu přijít na řešení kódování textu. Zjednodušeně popíšu, co provádím:

1) načtu soubor (ať už .txt nebo .java)

2) vypisuji ho do JTextArea

Objevil jsem však problém, že ze souboru .java se mi v JTextAreA špatně zobrazuje čeština. U souboru .txt s původním nastavením ANSII je to v pořádku.

Zkoušel jsem hledat na googluřešení, ale našel jsem pouze řešení na úrovni konfiguračních souborů prostředí (programuji v Netbeans)... To mi však nepomůže. Pro bakalářskou práci si představuji o něco vyšší úroveň programu, kde bych měl v pořádku načíst i naše háčky a čárky.

Moc děkuji za pomoc,

avalagne

Java › Infinity hodnota při výpočtu
18. 10. 2011   #148793

#2 zlz
Moc ti děkuji    Takovou chybu jsem ani nehledal...

Dávám vyřešeno.

Java › Infinity hodnota při výpočtu
18. 10. 2011   #148781

Ahoj,

zkouším si napsat program na průměrnou spotřebu, ale pořád mi to dává hodnotu Infinity... Přikládám kód:

private void btnVypoctiActionPerformed(java.awt.event.ActionEvent evt) {
        float pocetLitru = 0;
        float pocetKilometru = 0;
        float cenaPHM = 0;
        float spotreba = Float.NaN;
       
        try {
            pocetLitru = Float.parseFloat(txtPocetLitru.getText());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Nezadali jste číslo!", "Chyba", 0);
            txtPocetLitru.requestFocus();
            return;
        }
       
        try {
            pocetLitru = Float.parseFloat(txtPocetKilometru.getText());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Nezadali jste číslo!", "Chyba", 0);
            txtPocetKilometru.requestFocus();
            return;
        }
       
        /*try {
            pocetLitru = Float.parseFloat(txtCenaPHM.getText());
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Nezadali jste číslo!", "Chyba", 0);
            txtCenaPHM.requestFocus();
            return;
        }*/
       
       
        spotreba = (pocetLitru / pocetKilometru) * 100;
        lblPrumSpotrebaVypocet.setText(Float.toString(spotreba));
    }

Díky moc za jakékoli rady!

avalagne

Java › Vykreslení obrázku
7. 11. 2010   #135605

To SeraphCZ : Zkusil jsem co jsi mi radil a bohužel bez úspěchu. Jaký postup by jsi zvoli ty??(jen naznačit)

Java › Vykreslení obrázku
7. 11. 2010   #135594

Ahoj, poradíte mi někdo prosím? Snažím se vytvořit třídu která se bude starat o zobrazní obrázku. Když udělám jeji instanci a zavolám metodu setImage("foto.jpg") tak mi vyskočí NullPointerException. Už si nevím rady :/ už ani google ani dokumentace me nezachranili :D

Picture.java:



import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.JPanel;

public class Picture extends JPanel{

JPanel panel;
BufferedImage bi;
Graphics g;

public Picture(int x,int y, int width, int height){
setBounds(x, y, width, height);
setBackground(Color.white);
setBorder(BorderFactory.createLineBorder(Color.black));
}

public void setImage(String path){
try {
bi = ImageIO.read(new File(path));
} catch (Exception ex){
}
Image img = bi.getScaledInstance(this.WIDTH, this.HEIGHT, 100);
g.drawImage(img, this.WIDTH, this.HEIGHT, null);
}


díky za rady

Anonymní uživatel
Java › J2ME překeslování
17. 10. 2010   #134724

To Anonymní uživatel :
domuntaci jsem už koumal a nepomohlo to.. potřeboval bych spíš popis jak to udělat nebo kousek kodu

Pavel
Java › J2ME překeslování
17. 10. 2010   #134678

Ahoj,
potřeboval bych poradit jak překleslit obrazovku vytvořenou pomocí Graphics. Mám dva soubory:

Midlet.java



import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet implements CommandListener {
Display disp;
Command vypis;
Canvas can;
public long cas=0;
public long pocet=0;
public Timer timer;

public Midlet() {
vypis = new Command("Vypis", 1, Command.SCREEN);
}
public void startApp() {
disp = Display.getDisplay(this);
can = new Zobraz(cas);
can.addCommand(vypis);
can.setCommandListener(this);
disp.setCurrent(can);
timer = new Timer();
timer.schedule(new RunTimerTask(),0 , 1000);
}
private class RunTimerTask extends TimerTask {
public void run() {
cas++;

}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
System.out.println(cas);
}
}


Zobraz.java


import javax.microedition.lcdui.*;
class Zobraz extends Canvas {
long cas;
public Zobraz(long cas) {
this.cas = cas;
}
public void paint(Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0, 0, 0);
g.drawString((String.valueOf(cas)), 0, 0, g.TOP|g.LEFT);
}
}


od programu chci jen aby od spuštění vypisoval sekundy, timer funguje tak jak má to jsem ověřil pomocí sout.

Díky za rady :smile1:

braba
Java › problem s double
20. 9. 2009   #116215

Ahoj,
poradíte mi prosim jak se mam zbavit 0 ve vysledku nasledujiciho kodu?Ale kdyz by vysledek mel desetinna mista potrebuju aby se zobrazila. díky

public class pokus{

public static void main(String[] args){
double a=1,b=2,c;
c=a+b;
System.out.println(c);
}
}

Braba
Java › primitivní GUI
17. 8. 2009   #114587

To Anonymní uživatel :
Parada diky funguje to uz tomu rozumim, jen nevim kam se podelo

public class NECO


a jakto ze to funguje i bez toho

Braba
Java › primitivní GUI
13. 8. 2009   #114452

Dobrý den,
pokouším se vytvořit jednoduché GUI pouze okno podle mě by měl kód vypadat takto:

 import javax.swing.*;  

import java.awt.*;
public class okno{
public static void main(String[] args){
class Window extends JFrame {
public Window() {
super("Titulek");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
}
}


nebo



import javax.swing.*;
import java.awt.*;

class Window extends JFrame {
public Window() {
super("Titulek");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}


Přesto že kompilace proběhne bez problémů aplikace po spuštění nic neukáže(ani v jednou z obou případů)
Můžete mi někdo prosím poradit která verze kódu je správná proč se nic nezobrazí a co vlastně znamená
public class okno{

public static void main(String[] args)


děkuji za všechy kladné odpovědi.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý