Text area in menüasuwahl einbinden

moe_joe

Mitglied
Hi, ich versuche momentan ein textarea zu erstellen. Dieses soll bei dem klick auf dem menüpunkt "Spielregeln" erscheinen und die Spielregeln ausgeben. Habe versucht in dem Menüauswahlpunkt das ganze so zu vereinbaren
Code:
hilfe.add(new AbstractAction("Spielregeln"){ 
            public void actionPerformed(ActionEvent e) {
	    System.out.println("Spielregeln...");
            JTextArea ta = new JTextArea();
            ta.setText(Hier sollen die Spielregeln stehen)
	 } 
});

so wird mir allerdings beim programmstart die menüleiste nicht mehr angezeig. hat jemand nen tipp?
 
den kennst du doch schon in und auswendig:) aber hier haste ihn nochmal

Code:
public static void main(String[] args) // Main
	{
		Hangman Jpanel = new Hangman(); // Neuer Panel
		Jpanel.setFocusable(true);
		Jpanel.requestFocusInWindow(); // Focus in Panel setzen
		JFrame frame = new JFrame("JFrame"); // Frame vereinbaren
		frame.setTitle(".:Hangman:."); // Titel setzen
		frame.add(Jpanel, BorderLayout.CENTER); // Frame den Panel zuweisen
		frame.setSize(435, 360); // Größe setzen
		frame.setBackground(Color.black); // Hintergrund schwarz
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// Beim Klicken
		frame.setVisible(true);// Frame sichtbar machen
		JMenuBar menuBar = new JMenuBar();// Menübar erstellen
		frame.setJMenuBar(menuBar);// Menü dem Frame zuweisen
		JMenu datei = new JMenu("Datei");// Menüpunkt "Datei" Vereinbaren
		menuBar.add(datei);// Menüpunkt "Datei" der Menübar hinzufügen
		JMenu hilfe = new JMenu("Hilfe");// Menüpunkt "Hilfe" vereinbaren
		menuBar.add(hilfe);// Menüpunkt "Hilfe" der Menübar hinzufügen
		datei.add(new AbstractAction("Nochmal") {
			public void actionPerformed(ActionEvent arg0) {
				System.out.print("Nochmal...");

			}
		});

		datei.add(new AbstractAction("Beenden") {
			public void actionPerformed(ActionEvent e) {
				System.out.println("Beenden...");
				System.exit(0);
			}
		});
		hilfe.add(new AbstractAction("Spielregeln") {
			public void actionPerformed(ActionEvent e) {
				System.out.println("Spielregeln...");
				JTextArea ta = new JTextArea();
	            ta.setText(Hier sollen die Spielregeln stehen)

			}
		});
	}// Ende Main
 
Also hier kann ich keinen Fehler erkennen. Ich glaube auch nicht, dass es daran liegt, dass das Menu nicht mehr angezeigt wird. Aber auch mal so als Tipp. So wie du es da hast, wird es nicht funktionieren mit der JTextArea, da fehlt noch ein bischen was.

MFG

zEriX
 
ja ich muss das text area noch dem panel zuweisen.
Code:
public static void main(String[] args) // Main
	{
		Hangman Jpanel = new Hangman(); // Neuer Panel
		Jpanel.setFocusable(true);
		Jpanel.requestFocusInWindow(); // Focus in Panel setzen
		JFrame frame = new JFrame("JFrame"); // Frame vereinbaren
		frame.setTitle(".:Hangman:."); // Titel setzen
		frame.add(Jpanel, BorderLayout.CENTER); // Frame den Panel zuweisen
		frame.setSize(435, 360); // Größe setzen
		frame.setBackground(Color.black); // Hintergrund schwarz
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// Beim Klicken
		frame.setVisible(true);// Frame sichtbar machen
		JMenuBar menuBar = new JMenuBar();// Menübar erstellen
		frame.setJMenuBar(menuBar);// Menü dem Frame zuweisen
		JMenu datei = new JMenu("Datei");// Menüpunkt "Datei" Vereinbaren
		menuBar.add(datei);// Menüpunkt "Datei" der Menübar hinzufügen
		JMenu hilfe = new JMenu("Hilfe");// Menüpunkt "Hilfe" vereinbaren
		menuBar.add(hilfe);// Menüpunkt "Hilfe" der Menübar hinzufügen
		final JTextArea textarea = new JTextArea(4, 15);
	    textarea.setLineWrap(true);
	    textarea.setWrapStyleWord(true);
	    textarea.setTabSize(5);
	    textarea.setSize(180,100);
	    Jpanel.add(textarea);
		datei.add(new AbstractAction("Nochmal") {
			public void actionPerformed(ActionEvent arg0) {
				System.out.print("Nochmal...");

			}
		});

		datei.add(new AbstractAction("Beenden") {
			public void actionPerformed(ActionEvent e) {
				System.out.println("Beenden...");
				System.exit(0);
			}
		});
		hilfe.add(new AbstractAction("Spielregeln") {
			public void actionPerformed(ActionEvent e) {
				System.out.println("Spielregeln...");
				textarea.setText("Hier sollen die Spielregeln stehen");

			}
		});
	}// Ende Main

so zeigt er mir immehrin schonmal was an und das menü ist noch da. Am betsen wäre es, wenn er den text aus einer externen .txt datei auslesen könnte. Und mir fälltgrad auf das der text im textfeld ja frei formatierbar ist. das ist eigentlich nicht das was ich mir vorgestellt hatte. das textfeld soll sozusagen "gesperrt" sein.
 
Zuletzt bearbeitet:
hallo, ich hab bei meinem programm ne ganz normale Jmenubar. Jetzt würde ich gerne beim klick auf einen menüpunkt ein neues popup fenster öffnen lassen. wie/womit kann ich das am besten realisieren? habe es mal so probiert, is das der richtige weg? bis jetzt hab ich's noch nicht zum laufen gekriegt.

Code:
public static void main(String[] args) // Main
   {
      Hangman Jpanel = new Hangman(); // Neuer Panel
      Jpanel.setFocusable(true);
      Jpanel.requestFocusInWindow(); // Focus in Panel setzen
      JFrame frame = new JFrame("JFrame"); // Frame vereinbaren
      frame.setTitle(".:Hangman:."); // Titel setzen
      frame.add(Jpanel, BorderLayout.CENTER); // Frame den Panel zuweisen
      frame.setSize(435, 360); // Größe setzen
      frame.setBackground(Color.black); // Hintergrund schwarz
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// Beim Klicken
      frame.setVisible(true);// Frame sichtbar machen
      JMenuBar menuBar = new JMenuBar();// Menübar erstellen
      frame.setJMenuBar(menuBar);// Menü dem Frame zuweisen
      JMenu datei = new JMenu("Datei");// Menüpunkt "Datei" Vereinbaren
      menuBar.add(datei);// Menüpunkt "Datei" der Menübar hinzufügen
      JMenu hilfe = new JMenu("Hilfe");// Menüpunkt "Hilfe" vereinbaren
      menuBar.add(hilfe);// Menüpunkt "Hilfe" der Menübar hinzufügen
      datei.add(new AbstractAction("Nochmal") {
         public void actionPerformed(ActionEvent arg0) {
            System.out.print("Nochmal...");
         

         }
      });

      datei.add(new AbstractAction("Beenden") {
         public void actionPerformed(ActionEvent e) {
            System.out.println("Beenden...");
            System.exit(0);
         }
      });
      hilfe.add(new AbstractAction("Spielregeln") {
         public void actionPerformed(ActionEvent e){
            System.out.println("Spielregeln...");
            Popup popup = null;

            JPanel popup1 = new JPanel();

            popup1.add(new JLabel("Loading the files. Please wait."));
            popup1.add(new JLabel());
            popup1.setVisible(true);
            popup1 = ("das popup fenster mal gucken obs klappt")(this, popup1, 400, 400);
            popup1.show();
         }
      });
   }// Ende Main
 
Ein Panel ist kein Fenster. Ich denke auch, dass du kein Popup, sondern einen Dialog meinst.
Versuch es mal mit JDialog.

Arbeitest du mit eclipse?

MFG

zEriX
 
Im notfall nimm dir Netbeans, erstelle das damit (mit drag & drop) und schau dir den code an :p, vllt hier dir das weiter?!
 
es geht ja darum das beim klick auf den menüpunkt die spielregeln angezeigt werden sollen. ich hätte es aber gerne so, das dies in einem neues fenster passiert, halt als wenn ein popup fenster dafür aufgeht.
 
Das ist kein Popupfenster. Das ist ein Dialog, bei Swing heißt die Klasse JDialog. Meine Frage ob du mit eclipse arbeitest, war deswegen, weil du dir da die Methoden zu einer Klasse anschauen kannst. Z. B. JTextArea. Dann kommst du auch vielleicht von alleine drauf, wie man das anstellt, dass eine JTextArea nicht mehr bearbeitbar ist.

MFG

zEriX
 

Neue Beiträge

Zurück