Zum Inhalt springen

Tooltips für JInternalFrames deaktivieren, wie geht das?


Devilmarkus

Empfohlene Beiträge

Hallo,

ich habe folgendes Problem:

Ich möchte für mein Programm einen kleinen Desktop basteln, wo ein paar interne Applikationen zu finden sind.

So weit, so gut,

aber:

wenn ich nun über ein Icon in einem Frame fahre, öffnet sich ein Tooltip (Maximieren, Minimieren, Schliessen und so weiter...)

Beispiel:

tooltip.png

Das JInternalframe hier hat schon ToolTipText = null.

Wie kann ich das nun auch für die einzelnen Icons machen?

MfG

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Direkte Methoden um das einzustellen habe ich jetzt nicht gefunden, wenn man sich aber mal den Quellcode des JInternalFrame anschaut, bzw geneuer die UI-Klasse vom InternalFrame sieht man, dass für die Titelzeile ne eigene Klasse benutzt wird, und in dieser wird der Text für den Tooltip der Buttons vom UIManager geholt, das heißt, du kannst die Tooltips des Buttons über den UIManager bestimmen. Die Keys sind:

  • InternalFrame.closeButtonToolTip
  • InternalFrame.iconButtonToolTip
  • InternalFrame.restoreButtonToolTip
  • InternalFrame.maxButtonToolTip

Ich denke mal die Namen sind sprechend für welche Button welcher Key zuständig ist.

Die Werte dafür verändern kannst du dann über die Klasse UIManager, zum Beispiel kannst du folgendermaßen den ToolTip des Schließen-Buttons auf nichts setzen:

UIManager.put("InternalFrame.closeButtonToolTip", "");

Falls du das Nimbus Look&Feel per Hand setzt, solltest du diese Änderungen aber erst machen, sobald das Look&Feel gesetzt wurde. Da ich denke dass die Tooltips in dem Look&Feel direkt gesetzt werden, da zum Beispiel unter dem Metal Look&Feel keine Tooltips vorhanden sind.

Bearbeitet von Dragon8
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für den Versuch,

aber der funktioniert leider auch nicht :rolleyes:

        setLook(look);

        initComponents();


        UIManager.put("InternalFrame.closeButtonToolTip", null);

        UIManager.put("InternalFrame.iconButtonToolTip", null);

        UIManager.put("InternalFrame.restoreButtonToolTip", null);

        UIManager.put("InternalFrame.maxButtonToolTip", null);

(ob hierbei nun 'null' oder '""' ist kein Unterschied)

Trotzdem:

tooltip2.png

Ist auch egal, welchen Style ich verwende, man hat 4 zur Auswahl.

Ich möchte kurz erklären, warum ich die Tooltips hier weghaben möchte:

Ich filtere die Display Ausgabe bilinear und Tooltips oder auch sogar JComboBox'en verschrotten die bilineare Bildschirmausgabe, so dass ich nur noch 1FP/s erhalte und der Emulator nicht mehr zu bedienen ist.

hier mal das Display mit allen möglichen Filtern und Effekten:

monitor.png

Ich möchte eine möglichst realistische CRT Monitor Darstellung erreichen.

Solange hier also keine JComboBox oder ein Tooltip reinhaut, habe ich das auch bei 50FP/s...

Java geht manchmal seltsame Wege :old

Link zu diesem Kommentar
Auf anderen Seiten teilen

Versuch mal die Einstellungen zwischen dem Setzen des Look&Feels und dem Initalisieren der Komponenten zu setzen.

Weil zum Beispiel bei folgendem Quelltext funktioniert das bei mir wunderbar:


import javax.swing.*;




public class TestInternalFrame extends JFrame{


	public static void main(String[] args) {

		new TestInternalFrame().setVisible(true);

	}



	public TestInternalFrame() {

		super("Test");

		this.setBounds(50, 50, 500, 600);

		this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);


		try {

			UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

		} catch (Exception e) {

			e.printStackTrace();

		} 


		UIManager.put("InternalFrame.closeButtonToolTip", "");	

		UIManager.put("InternalFrame.iconButtonToolTip", "");

		UIManager.put("InternalFrame.restoreButtonToolTip", "");

		UIManager.put("InternalFrame.maxButtonToolTip", "");


		JDesktopPane desktop = new JDesktopPane();

		JInternalFrame frame = new InternalFrame();

		frame.setVisible(true);

		desktop.add(frame);

		this.setContentPane(desktop);


	}


	class InternalFrame extends JInternalFrame{

		public InternalFrame() {

			super("Test Frame", true, true, true, true);

			add(new JButton("Neuer Button"));

			setLocation(30, 30);

			pack();

		}

	}

}

Wenn ich jedoch den Block mit den ToolTip Einstellungen erst einfüge nachdem ich die DesktopPane mit dem InternalFrame eingerichtet und dem JFrame hinzugefügt habe, funktioniert es nicht.

Wenn du also wirklich eine eigene Methode hast, die dass Look&Feel setzt, dann versuch die Einstellungen gleich darin vorzunehmen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe es nun hinbekommen:


        UIManager.put("InternalFrame.closeButtonToolTip", "");

        UIManager.put("InternalFrame.iconButtonToolTip", "");

        UIManager.put("InternalFrame.restoreButtonToolTip", "");

        UIManager.put("InternalFrame.maxButtonToolTip", "");

        setLook(look);

        initComponents();
Sorum geht es! Danke! Achja:
    public void setLook(int look){

        try {

            if (look == 1)

            UIManager.setLookAndFeel( "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel" );

            if (look == 2)

            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

            if (look == 3)

            UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

        }

        catch(Exception e ) {e.printStackTrace();}

    }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...