Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Nudou jsi opuch?
Navštiv Lopuch!

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: zkwviei
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
dodanek Dodanek 20.5.2011 07:47  1199
Takže pro představu, programujeme ve škole jednoduchou gui aplikaci, která má zajišťovat pro firmu evidenci zákazníků, zaměstnanců, objednávek .. a protože je tam spousta oken a menu bude všude stejný, tak jsem ho chtěl prdnout do zvláštní třídy, a pak si ho v oknech zavolat .. vypadá to asi takhle:


package gui;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

/**
*
* @author Ondra
*/
public class Menu extends JMenuBar {


private JMenu souborMenu;
private JMenuItem konecMenuItem;
private JMenu napovedaMenu;
private JMenuItem oProgramuMenuItem;
private JMenuItem napovedaMenuItem;
private OknoNapovedy oknoNapovedy;
private JMenuBar menu;

public Menu() {

menu = new JMenuBar();
souborMenu = new JMenu("Soubor");
souborMenu.setMnemonic(KeyEvent.VK_S);
menu.add(souborMenu);
souborMenu.addSeparator();
napovedaMenu = new JMenu("Nápověda");
konecMenuItem = new JMenuItem("Konec");
souborMenu.add(konecMenuItem);
konecMenuItem.addActionListener(new KonecEvidence());
konecMenuItem.setMnemonic(KeyEvent.VK_K);
menu.add(napovedaMenu);
oProgramuMenuItem = new JMenuItem("O Programu");
oProgramuMenuItem.addActionListener(new OProgramu());
oProgramuMenuItem.setMnemonic(KeyEvent.VK_O);
napovedaMenu.setMnemonic(KeyEvent.VK_V);
napovedaMenu.add(oProgramuMenuItem);
napovedaMenuItem = new JMenuItem("Nápověda k aplikaci");
napovedaMenuItem.setMnemonic(KeyEvent.VK_A);
napovedaMenu.add(napovedaMenuItem);
napovedaMenuItem.addActionListener(new Napoveda());
}

private class KonecEvidence implements ActionListener {

public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}

/**
* Vnitřní třída, implementující okno O programu v hlavním menu
*/
private class OProgramu implements ActionListener {

public void actionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(null,
"blabla");
}
}


/**
* * Vnitřní třída implementující ActionListener
* slouží k zobrazení nápovědy k programu volbou z menu.
*
*/
private class Napoveda implements ActionListener {

public void actionPerformed(ActionEvent arg0) {
oknoNapovedy = new OknoNapovedy("/zdroje/napoveda.html");
oknoNapovedy.setVisible(true);
}
}
}


a ve třídě, která dělá okno, je mj. tohle:

private Menu menu;

public UvodniOkno() {
// initMenu();

init();
setVisible(true);
}


/**
* Metoda inicializuje a propojuje jednotlivé komponenty GUI
*/
private void init() {

uvodniOknoFrame = new JFrame();
menu = new Menu();

uvodniOknoFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
uvodniOknoFrame.setTitle("Hodinoví Bozi");
uvodniOknoFrame.setSize(700, 400);
uvodniOknoFrame.setLocation(150, 150);
uvodniOknoFrame.setJMenuBar(menu);
uvodniOknoFrame.setResizable(false);

a tak dále ..

a to menu tam prostě nemám. když obsah třídy menu víceméně hodim přímo do okna, tak to funguje .. určitě dělám nějakou debilní chybu :)
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 19.5.2011 16:09  1198
operator304 [1197]: jo, to je mozny - koukni, odkud se ti loaduje log4j.Logger
operator304 19.5.2011 15:33  1197
Hm, tak se loaduje jenom jednou. Jeste me napadlo, ze muze bejt problem s rozdilnou verzi log4j na serveru a v aplikaci. Ten EmtHostLogger dedi od org.apache.log4j.Logger.
operator304 19.5.2011 14:31  1196
Tessien [1195]: Zkusim. Ted jsem to projel totalem a tu tridu tam mam akorat jednou...
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 19.5.2011 14:26  1195
Jeste dodatek - IMO nejlepsi zpusob debugovani takovychhle problemu je prihodit jave parametr "-verbose:class" - to ti vypise do logu nebo stdout/stderr (ted nevim presne kam - u JBossu asi do server.log) radku pri kazdym loadovani tridy class loaderem, vcetne presny lokace odkud se nahrava. Pak si tam vyhledej odkud se ti ta trida nahrava.
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 19.5.2011 14:23  1194
operator304 [1193]: mas tam nekde 2 ruzny verze knihovny, ktera obsahuje tuhle tridu. Nahod nejaky prohledavani, ktery umi lezt do jar-u (napriklad Total Commander) a najdi si vsechny vyskyty tyhle EmtHostLogger.class v JBoss adresari (vcetne aplikace) - IMO tam 100% najdes 2 ruzny.
operator304 19.5.2011 14:04  1193
* JBoss je 5.1.0
operator304 19.5.2011 14:04  1192
dotazCo byste si mysleli o tehle vyjimce:

java.lang.ClassCastException: com.element.emtlog4j.extended.logger.emthost.EmtHostLogger cannot be cast to com.element.emtlog4j.extended.logger.emthost.EmtHostLogger.

Lita mi to z deploye na JBoss 5.0.4, Java je sestkova, stejna jak pro build aplikace, tak pro JAR s touhle tridou, tak pro runtime toho aplikace...

Nejak mi dochazi napady...
michvolka Michvolka pšt! 18.2.2011 17:44  1191
Sháníme někdo práci?Do naší společnosti sháníme programátora. Práce v Praze (dobrá dostupnost). Všechny další informace jsou v inzerátu:

http://www.inetprint.cz/kariera-programator-asp-aspnet

Kdyby měl někdo nějaké dotazy tak prosím do mé pošty.

Pokud byste věděli o někom, kdo by mohl odpovídat naším požadavkům, tak mu to prosím přepošlete. Díky.
anonym 5.2.2011 17:13  1190
Kalkulacewww.kalkulace.eu - Vyřeší vaše problémy s počty
bredy 2.2.2011 14:06  1189
Když evoluce designuje auta

Stačí základní podmínky. Fyzika + a cíl: dojet co nejdál. Nechte evoluci zvolit si nejlepší cestu.
huh huh 30.12.2010 19:17  1188
:-) ale tak, podle hlasu je mu tak 10, to ještě může blábolit
operator304 30.12.2010 15:08  1187
133t h4x0r 101 (Bacha, boli to)
sekory Sekory The journey of thousand miles - starts with a single step. 2.12.2010 13:20  1186
Znáte Lightbot? Taková hra pro programátory... :)
operator304 26.11.2010 12:56  1185
No, samozrejme... ale to bude jednodussi udelat to jednim jobem. Kazdopadne dik.

[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt