Dans Java SWT, existe-t-il un moyen de dessiner du texte sur un shell transparent afin que seul le texte apparaisse visible? Ce que je voudrais faire, c'est que le texte apparaisse sur mon bureau sans aucune fenêtre d'arrière-plan. L'utilisation de shell.setAlpha() rendra l'ensemble du shell transparent, y compris tous les éléments qui apparaissent dessus (que j'essaye d'éviter).Java SWT - Texte sur un shell transparent?
3
A
Répondre
3
Voici un exemple displaying an image without the shell. Vous pouvez assez facilement l'adapter pour afficher du texte.
Mise à jour:
OK Je me suis ennuyé. Voici un exemple de base qui peint "Bonjour" sur un fond transparent:
package swttest;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.graphics.Region;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class Test {
public static void main(String[] args) {
Test test = new Test();
test.show();
}
public void show() {
Display display = new Display();
// Create a shell with no trim
final Shell shell = new Shell(display, SWT.NO_TRIM);
shell.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
//set the transparent canvas on the shell
Canvas canvas = new Canvas(shell, SWT.NO_BACKGROUND);
//create an area to paint the text
Rectangle size = new Rectangle(0, 0, 200, 200);
canvas.setBounds(size);
Region region = canvas.getRegion();
//mucking about with fonts
Font font = display.getSystemFont();
FontData[] fd = font.getFontData();
fd[0].setHeight(24);
fd[0].setStyle(SWT.BOLD);
Font bigFont = new Font(display, fd[0]);
canvas.setFont(bigFont);
// define the shape of the shell using setRegion
shell.setRegion(region);
shell.setSize(size.width, size.height);
canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
e.gc.drawString("Hello", 10, 10, true);
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
region.dispose();
display.dispose();
}
}
Questions connexes
- 1. programmation Java SWT
- 2. Java SWT - Repeindre un canevas après un redimensionnement
- 3. Déploiement d'une application SWT sur Java Webstart
- 4. Écriture de texte transparent sur l'image
- 5. SWT Lien Texte>
- 6. Aligner le texte et l'image dans un bouton SWT?
- 7. SWT et Webstart sur Mac
- 8. Formulaire transparent sur le bureau
- 9. SWT: Système VirtualKeyBoard
- 10. Rendre le texte transparent dans Shoes.app
- 11. Texte anti-aliasé dans un formulaire .NET transparent
- 12. Eclipse SWT - Dilemme de programmation Java
- 13. SWT: Impossible de redimensionner les boutons sur un Mac
- 14. Comment dessiner un plan transparent en Java 3D?
- 15. comment rendre java JPanel et graphics2d transparent?
- 16. Composant SWT - problème de redessiner
- 17. Pouvez-vous superposer un div transparent sur une image
- 18. Fond transparent - pas complètement transparent
- 19. Un autre shell ouvert sur le serveur?
- 20. Dois-je créer Linux Shell Script ou un programme Java?
- 21. Comment ajouter un PApplet de traitement dans SWT
- 22. Conversion HTML en texte dans un script shell
- 23. SWT et Java WebStart sous Mac OS X 10.5
- 24. SWT update/redraw/layout prblem
- 25. Rendre un contrôle "transparent" pour cliquer sur les événements
- 26. Java SWT interop avec COM - mettre un flotteur [] dans un variant?
- 27. Java SWT: Comment indiquer qu'un élément de menu est sélectionné
- 28. Comment obtenir le contenu du texte sur la table de swt avec des contrôles arbitraires
- 29. Comment exécuter un script shell sur une machine distante à partir de Java?
- 30. Rendre un modèle 3D transparent
Ne fonctionnait pas pour moi sur Windows 7 et SWT 3.550. Affiche un rectangle noir sans texte. –