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

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);
		}
	}
}

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny