Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt)

prototype0815

Aktives Mitglied
Hallo liebe Leuts,
ich habe geschäftlich ein etwas schwierigeres Projekt zu managen, und zwar habe ich eine vorhandene OnscreenKeyboard (OSK) die sehr sehr abgespeckt war, aufgemotzt. Ich habe daraus, für eine komfortablere Bedienung an Touchscreens, eine "Swipe"-ähnlich Tastatur gebaut.
539708dde0927.png

wenn man mit dem Finger (Maus) auf eine Taste klickt wird sie etwas größer und über der eigentlichen Taste dargestellt. Nun kann ich mit dem Finger über die Tastatur fahren, und wenn ich zur nächsten Taste komme wird diese dann groß und die andere davor verschwindet. Ich hoffe ihr versteht was ich meine :D
Zur Erläuterung, jede Taste die man dort sieht ist ein Key Objekt. Die Tastatur die man sieht ist eine Application und die Anwendung drum herum (von der man nur noch einen kleinen Teil sieht) ist ein Applet das sich mit der Tastatur verbindet.
Wie man auf dem Bild unschwer erkennen kann ist die Taste die gerade groß angezeigt wird oben abgeschnitten. Weil die OSK App nur so viel anzeigefläche bekommt wie sie auch Tatsächlich groß ist.
Würde ich eine Zahl anklicken dann wäre nichts sichtbar weil diese komplett oben raus gezeichnet werden würde.

Nun hatte ich die Idee, da Tooltipps auch über die Anzeigefläche der App hinaus gezeichnet werden, könnte ich für meine Keys die selbe Funktion nutzen. Aber ich finde leider zu dem Thema überhaupt nix.
Ich habe schon versucht mit JRootPane - JLayeredPane zu arbeiten aber das wirft mehr Probleme auf als das es löst.

Vielleicht kennt sich ja jemand gut genug mit Tooltips aus um mir zu helfen, oder gleich zu sagen das dies net möglich ist. :D

LG proto
 
Zuletzt bearbeitet:

Newcomer2

Aktives Mitglied
Hi,

also muss erstmal zugeben, hab selbst noch nicht mit tooltips gearbeitet, aber wenn die Taste vollständig angezeigt werden soll, warum denn nicht als neues Window schreiben? :)

Dem kannste ja auch zuweisen, dass es im Vordergrund ist, erscheint sobald ein Feld erreicht wird und verschwindet sobald das Feld überschritten ist :)

Ist vielleicht nicht ganz so elegant, aber würde doch bestimmt auch funktionieren ^^
 

prototype0815

Aktives Mitglied
Also mir geht es eigentlich eher drum wie denn wohl die Tooltips arbeiten, wie werden sie über allen anderen Objekten gezeichnet? Damit zu arbeiten ist kinderleicht.... btn01.setToolTipText("ich bin der Tooltiptext");.....fertig.

Und zu Window Objekten, ich habe schon mit JRootPane und JLayeredPane gearbeitet um mein Problem zu lösen, hat aber nicht funktioniert. Da JWindow auch vom Objekt Component abstammt genau wie JPanel und all so viele kann ich damit leider nur genau die selben Methoden nutzen.

Mit Hilfe von JLayeredPane habe ich mein Objekt auf die oberste, die PopupLayer gelegt. Die Taste war zwar dann über allen anderen gezeichnet, aber ebenfalls nicht über den Rand der Application hinaus.
 

prototype0815

Aktives Mitglied
Morgen, ich hab meine Problem schon vor einiger Zeit gelöst, aber nun dachte ich, ich sollte euch daran Teil haben lassen falls in Zukunft nochmal jemand ein derartiges Problem hat.
So sieht nun die Lösung aus. Ein Buffered Image (bim) wird nicht nur innerhalb der Application gezeichnet sonder wie ein Tooltip auch über den Rand hinaus.
53b638fb2af07.png


Ich habe mir angeschaut wie die Tooltips funktionieren und mir eine eigene "show" Methode für ein JWindow geschrieben. Es wird nun direkt gezeichnet sobald dieses JWindow erstellt wird und nicht wie man es sonst kennt wenn das System update() aufruft, oder der Programmierer einen Flag setzt mit repaint().
Java:
    win = new JWindow() {

      public void show() {
        synchronized (getTreeLock()) {
          ComponentPeer peer = this.getPeer();
          if (peer != null) {
            if (peer instanceof LightweightPeer)
              super.show();
          }
          else {
            addNotify();
            validate();
            toFront();
            synchronized (getTreeLock()) {
              visible = true;
              peer = getPeer();
              Graphics2D g = (Graphics2D) peer.getGraphics();
              peer.show();
//              System.out.println(peer);
              g.drawImage(bim, 0, 0, bim.getWidth(), bim.getHeight(), null);
            }
//            super.show();
          }
        }
      }
    };
Java:
if (bim == null)
      bim = new BufferedImage(key.getWidth(), key.getHeight(),
          BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = (Graphics2D) bim.getGraphics();
    g2.setFont(this.getParent().getFont());
    key.paint(g2);

    g2.setColor(new Color(255, 255, 0, 150));
    g2.setStroke(new BasicStroke(3));
    g2.drawRoundRect(0, 0, bim.getWidth() - 1, bim.getHeight() - 1, 10, 10);

    win.setBounds(keyboardLocation.x + (int) (p.getX() - (d.width / 4)),
        keyboardLocation.y + (int) (p.getY() - (d.height * 1.5)) - 3,
        bim.getWidth(), bim.getHeight());
    win.setAlwaysOnTop(true);
    win.setVisible(true);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
M JavaFX Tooltip bei setOnMouseMoved Verständnisproblem AWT, Swing, JavaFX & SWT 6
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
M Datenbanksätze in ToolTip laden AWT, Swing, JavaFX & SWT 4
Tom299 JavaFX Tooltip verbuggt? AWT, Swing, JavaFX & SWT 1
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
U drawLine mit Tooltip AWT, Swing, JavaFX & SWT 1
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
B JavaFX Tooltip auf ImageView AWT, Swing, JavaFX & SWT 6
U Tooltip Dauer setzen AWT, Swing, JavaFX & SWT 0
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
S SWT: Drop-Down Menü-Einträge mit Tooltip hervorheben AWT, Swing, JavaFX & SWT 3
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
C Tooltip dynamisch setzen AWT, Swing, JavaFX & SWT 7
GianaSisters Swing jComboBox Tooltip funktioniert nicht AWT, Swing, JavaFX & SWT 17
6 ToolTip erzwingen AWT, Swing, JavaFX & SWT 6
R SWT Tooltip AWT, Swing, JavaFX & SWT 5
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
T Tooltip bei falscher Eingabe anzeigen AWT, Swing, JavaFX & SWT 2
hdi Problem mit ToolTip: Aussehen/Verzögerung AWT, Swing, JavaFX & SWT 7
P Tooltip "erzwingen" ? AWT, Swing, JavaFX & SWT 7
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
Antoras Swing Tooltip permanet anzeigen AWT, Swing, JavaFX & SWT 5
W Verzögerung à la Tooltip bei mouseEntered AWT, Swing, JavaFX & SWT 19
G Tooltip anzeigen AWT, Swing, JavaFX & SWT 4
GilbertGrape scrollable Tooltip AWT, Swing, JavaFX & SWT 9
G Tooltip Text für ein Shape Objekt AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable+Tooltip+Zeilenumbrüche AWT, Swing, JavaFX & SWT 7
M Tooltip anzeigen? AWT, Swing, JavaFX & SWT 3
J Anzeigedauer eines Tooltip? AWT, Swing, JavaFX & SWT 5
S Tooltip Frage AWT, Swing, JavaFX & SWT 3
G 'Spezieller' Tooltip, wenn JTable-Column zu schmal AWT, Swing, JavaFX & SWT 6
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G Tooltip Zeilenumbruch AWT, Swing, JavaFX & SWT 13
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
F ToolTip auf Canvas AWT, Swing, JavaFX & SWT 2
S Tooltip auf Toolbar-Icon AWT, Swing, JavaFX & SWT 6
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
D Eigenes Tooltip AWT, Swing, JavaFX & SWT 5
M JTree: Tooltip wenn Text nicht vollständig angezeigt wird AWT, Swing, JavaFX & SWT 3
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
I JTable, Tooltip, HTML AWT, Swing, JavaFX & SWT 2
S ToolTip an Mausposition anzeigen AWT, Swing, JavaFX & SWT 5
O Hintergrundfarbe beim ToolTip AWT, Swing, JavaFX & SWT 5
L JLabel als Tooltip AWT, Swing, JavaFX & SWT 3
G Tooltip aufpoppen lassen AWT, Swing, JavaFX & SWT 3
M Border in ToolTip AWT, Swing, JavaFX & SWT 5
F ToolTip über Line2D bzw. Rectangle2D AWT, Swing, JavaFX & SWT 5
R JTable: Jede Zelle mit eigenem ToolTip belegen AWT, Swing, JavaFX & SWT 5
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
V Tooltip Text auf Spaltenkopf (JTable) AWT, Swing, JavaFX & SWT 4
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
G ToolTip AWT, Swing, JavaFX & SWT 4
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
N lightweight bei ToolTip AWT, Swing, JavaFX & SWT 2
kaory Variabler ToolTip-Text in JTable AWT, Swing, JavaFX & SWT 5
T ToolTip AWT, Swing, JavaFX & SWT 3
R ToolTip länger aufrecht erhalten AWT, Swing, JavaFX & SWT 3
S ToolTip erweitern bei Swing (Mehrzeilig) AWT, Swing, JavaFX & SWT 2
M Tooltip / neues Fenster AWT, Swing, JavaFX & SWT 6
G Die ganze Pane width nutzen AWT, Swing, JavaFX & SWT 1
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
K Javafx Plugin (javafx:jlink) mit moditect Plugin nutzen ... AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
B Swing JXMapkit OSM Karten offline Nutzen AWT, Swing, JavaFX & SWT 0
G JavaFX Nutzen von Interface Callback<P,R> AWT, Swing, JavaFX & SWT 2
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
T Swing Nutzen von MediaTracker AWT, Swing, JavaFX & SWT 4
F Swing GUI-Thread für automatisches Update nutzen AWT, Swing, JavaFX & SWT 10
C html browser in Application nutzen AWT, Swing, JavaFX & SWT 10
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
T SWINGX richtig nutzen AWT, Swing, JavaFX & SWT 7
S JSplitpane in BorderLayout nutzen AWT, Swing, JavaFX & SWT 4
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
C Kann Konstruktor von eigenem TableModel nicht nutzen AWT, Swing, JavaFX & SWT 2
R Swing alle Frames nutzen das gleiche Model AWT, Swing, JavaFX & SWT 2
D Swing Nutzen von StyleConstants AWT, Swing, JavaFX & SWT 5
J [gelöst] nicht installierte Schrftart nutzen AWT, Swing, JavaFX & SWT 8
R Japaner koennen mein Programm nicht nutzen..? AWT, Swing, JavaFX & SWT 11
A paint()-Methode für Videoexport nutzen AWT, Swing, JavaFX & SWT 2
T JFrame doppelt nutzen? AWT, Swing, JavaFX & SWT 3
D Methode Graphics g klassenübergreifend nutzen. AWT, Swing, JavaFX & SWT 3
T Eigene erweiterte MouseEvents nutzen AWT, Swing, JavaFX & SWT 2
B Polygon mit contains() nutzen AWT, Swing, JavaFX & SWT 4
D JDIC Browser in SWT/JFace Anwendung nutzen AWT, Swing, JavaFX & SWT 2
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3
P VK_TAB wie nutzen ? [Tabulator Taste] AWT, Swing, JavaFX & SWT 5
S JFrame und Applets zusammen nutzen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben