addMouseListener

Status
Nicht offen für weitere Antworten.

steff3

Bekanntes Mitglied
Code:
        private JTabbedPane tab = new JTabbedPane();
	private JPanel pan = new JPanel(new BorderLayout());

	private JPanel pan2 = new JPanel(new BorderLayout());

	public MyJTab() {

		tab.add("Piloten", pan);
		tab.add("blub", pan2);

		tab.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent evt) {

				if (SwingUtilities.isLeftMouseButton(evt)) {

					PilotenTab();
					
				}

			}
		});
		
	}

wenn ich jetzt auf den Piloten Tab klicke wird de code korrenkt ausgeführt, wie bekommt aber der blub Tab an seinen actionlistener für die maus? gehören ja beide zum tab und dem kann ich nur einen geben - ich weiß nicht wie man die unterscheiden kann
 

SebiB90

Top Contributor
du fügst dem ganzen tab ein mouselistener hinzu, also auch wenn du auf blub klickst wird der ausgeführt
außerdem kannst zu componenten beliebig viele listener hinzufügen, die dann ALLE benachrichtigt werden.
aber wie du jetzt heraus finden kannst auf welches tab du geklickt hast, weiß ich nicht, irgendwie mit koordinaten berechnen oder so

Nachtrag:
einmal in die api gucken und man hat es
mit indexAtLocation(int x, int y) bekommst du den index des tabs
und dann kannste dir mit dem index per getTitleAt(int index) den titel des tabs bekommen und dem entsprechen reagieren.
 

steff3

Bekanntes Mitglied
das muss doch auch ordentlich gehen, zu mal ich nicht weiß woher ich die locaten für den index nehmen soll
 

SebiB90

Top Contributor
lol, rat mal was in mouseevent drin steht... genau die koordinaten wo der user geklickt hat :wink:
du könntest es auch mit einem changelistener machen
oder es mit getSelectedComponent() versuchen
 

André Uhres

Top Contributor
Code:
...
        tab.addChangeListener(new ChangeListener() {
            public void stateChanged(ChangeEvent evt) {
                tabStateChanged(evt);
            }
        });
...
    private void tabStateChanged(ChangeEvent evt) {
        System.out.println(tab.getSelectedIndex());
    }
...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben