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: fgaethc
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
dodanek Dodanek 20.5.2011 08:18  1207
funguje! mas muj nehynouci obdiv, tisicere diky! jeste se sem urcite brzo vratim :D
operator304 20.5.2011 08:16  1206
Jo, tohle jsi posral :) smaz to this = new Jmenubar
dodanek Dodanek 20.5.2011 08:15  1205
public Menu() {

this = new JMenuBar();

ale mam pocit, ze jsem to cely nejak posral :D
operator304 20.5.2011 08:12  1204
Z kteryho radku?
dodanek Dodanek 20.5.2011 08:11  1203
required: gui.Menu
found javax.swing.JMenuBar
operator304 20.5.2011 08:03  1202
Prosyte vyhod field menu a jeho inicializaci, a misto ty promenny volej "this"
operator304 20.5.2011 07:59  1201
Co to bude delat, kdyz vyhodis field JMenuBar menu a v konstruktoru nahradis tuhle promenou referenci na ten konstruovanej objekt? (this)
operator304 20.5.2011 07:54  1200
Pisu z telefonu, takze se mi debilne hleda javadoc. Ta trida JMenuBar (predek Menu) ma bezparametrickej konstruktor?
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

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

(c) 2001-2011 Lopuch.cz   
Kontakt