Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem java - actionPerformed()

zdravim..chtěl jsem se zeptat jaká je konvence při používání této funkce. např pokud bych měl na hlavním okně menubar zavedený jako zvlášť třídu ve které už by se dotvořily položky menu a chtěl bych otvírat okna která existují mimo tuto třídu.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
např pokud bych měl na hlavním okně menubar zavedený jako zvlášť třídu Nějak moc nerozumím, co takh…
MaSo 09.01.2009 12:05
MaSo
no zatim sem nezačal psát, ale tak nějak mě napadlo že bych se mohl setkat s přibližně takovouto sit…
krutor 09.01.2009 12:18
krutor
Preco potrebujes vytvarat dialog v tej hlavnej frameovej classe? nestaci ti ho vytvorit az priamo pr…
emem 09.01.2009 13:30
emem
mě šlo jenom o jestli v tom existuje nějaký ostřílený standart kvůli pozdějším změnám...ale takle mi… poslední
krutor 09.01.2009 14:00
krutor

no zatim sem nezačal psát, ale tak nějak mě napadlo že bych se mohl setkat s přibližně takovouto situací:

public class Nabidka extends JMenuBar{

// tady nějaké definice toho jak to menu bude vypadat + co budou jednotlivé položky obstarávat právě tou fcí actionPerformed()
}

//a budu mít třídu s hlavním oknem čili

public class HlOkno extends JFrame{

private Nabidka menu=new Nabidka();
private JDialog nejakyDialog= new JDialog();

public HlOkno(){
setJMenuBar(menu);
}
}

a zajímalo by mě právě jak to napsat nejlíp abych mohl volat dialog z hlavního okna přes to menu...zatim nemám moc přehled, k jakým komponentám se vůbec umisťují dialogy?

Preco potrebujes vytvarat dialog v tej hlavnej frameovej classe?
nestaci ti ho vytvorit az priamo pri volani konkretnej akcie v menu?

Ak to naozaj tak potrebujes, tu je jedno z moznych rieseni:
posli si ten hlavny frame do nabidky:

public class MainFrame extends JFrame {
	
	private JDialog dialog = new JDialog();
	
	public static void main(String[] args) {
		MainFrame tester = new MainFrame();
		tester.setSize(300, 200);
		tester.setTitle("MainFrame");

		tester.setJMenuBar(new Nabidka(tester));
		tester.setVisible(true);
	}

	public JDialog getDialog() {
		return dialog;
	}

	public static class Nabidka extends JMenuBar {

		public Nabidka(final MainFrame mainFrame) {
			
			JMenu menu = new JMenu("Menu");
			
			menu.add(new AbstractAction("Show dialog from main frame") {
				public void actionPerformed(ActionEvent e) {
					mainFrame.getDialog().setVisible(true);
				}
			});
			add(menu);
		}
	}
}

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