Timer/Stoppuhr in MenuBar anzeigen

HansK

Mitglied
Hallo Java-Freunde,

ich wollte fragen ob es möglich ist, dass ein Timer/ eine Stoppuhr bei Aufrufen von "New Game" in die Menüleiste automatisch eingefügt wird. ( Also wie ein neuer Menüpunkt)

Java:
    JMenu menu, submenu;
    JMenuItem menuItem;
    JMenuBar menuBar = new JMenuBar();

    menu = new JMenu( "Game");          // Erzeugen eines Hauptmenüpunktes
    menuBar.add( menu);                       // Hinzufügen des Hauptmenüpunktes
    menuItem = new JMenuItem( "New Game");         // Erzeugen eines Sub-  bzw Untermenüs
    menu.add( menuItem);                       // Hinzufügen des Submenüpunktes
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
      ??????
      }
    });

Ich habe noch nicht so viel Ahnung von Java, und freue mich über jede Anregung!

Gruß,
Hans
 
Zuletzt bearbeitet von einem Moderator:
Hallo was für einen Sinn, macht es denn in eine Menubar einen Timereinzubauen?
Bau dir doch lieber ein Panel dadrunter bzw ein zweites Menu in dem der Timer zu sehen ist.

Diese Idee habe ich ja noch nie gehört, denn die semantik einer Menubar ist zu navigieren in einer Software bzw. auf einer Webseite.

grüße spin
 
Hallo Spin,

wenn ein neues Spiel gestartet wird, möchte ich das ein Timer mitläuft.
Ist dies in der selben Menubar nicht möglich?
Siehe Anhang

Gruß,
Hans
 

Anhänge

  • game.jpg
    game.jpg
    41,2 KB · Aufrufe: 39
Ich finde die Idee immer noch ziemlich sinnlos, da die Navi wie schon gesagt nichts mit so einer Zeitangabe etwas zu Tun hat, aber wenn du das gerne haben möchtest, dann update einfach menu.setText() jedesmal wenn der timer einen runterzählt.


Versuche es einfach mal und poste code, dann schaue ich ob es so passt. Aber sollte schnell realisiert sein. Bau dir einen Timer der runter zählt und jedesmal ein Event feuert. Das Event wird denn benutzt um den text zu ändern.

Das gleiche würdest du mit einem JLabel machen, grüße spin
 
mal so auf die schnelle gecodet...:

Java:
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;

public class MenuTimer {
	MenuBar m;
	static Menu t;

	public MenuTimer() {
		JFrame f = new JFrame();
		m = new MenuBar();
		t = new Menu();
		MenuItem mi = new MenuItem("Das ist wohl der Timer");
		t.add(mi);
		m.add(t);
		f.setMenuBar(m);
		f.setSize(300, 300);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setLocationRelativeTo(null);
		f.setVisible(true);

	}

	public static void main(String[] args) {
		new MenuTimer();
		Timer timer = new Timer();

		timer.schedule(new Task(t), 0, 1000);
	}

}

class Task extends TimerTask {
	public Task(Menu t) {
		this.t = t;
	}

	int i = 10;
	Menu t;

	@Override
	public void run() {
		if (i == 0) {
			t.setLabel("ENDE");
			this.cancel();

		} else {
			t.setLabel(i + "");
			i--;
		}
	}

}
 

Zurück
Oben