Recommandez moi un Objet Graphique SVP [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
6 août 2012
-
Messages postés
5
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
6 août 2012
-
Bonjour,

J'aimerai développer une interface graphique en JAVA qui ressemble a "google traduction" mais je ne sais pas quel objet graphique utiliser pour le faire apparaître un mot en jaune lorsque la sourie est sur ce dernier.
Je précise ce n'ai pas le traducteur en lui même qui m'intéresse mais plutôt le graphique utilisé pour mettre en valeur les mots que la sourie survole.

Merci pour votre aide.

Bonne journée :)


3 réponses

Messages postés
623
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
11 novembre 2012
967
Ok, alors voici un exemple complet:

package hacktrack.highlighter;

import java.awt.Color;
import java.awt.Container;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.EventObject;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;

public class HighlighterDemo extends JFrame {
	private static final long serialVersionUID = 6086759176279462425L;

	public HighlighterDemo() {
		super("Highlighter Demo");
		init();
	}

	private void init() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		Container c = getContentPane();
		JTextArea textArea = new JTextArea(
				"Petite démo de 'highlight' en Swing", 10, 40);
		HighlighterListener highlighterListener = new HighlighterListener();
		textArea.addCaretListener(highlighterListener);
		textArea.addMouseListener(highlighterListener);
		textArea.addMouseMotionListener(highlighterListener);
		textArea.setBorder(BorderFactory
				.createTitledBorder("Tape du texte ici, puis sélectionne un mot ou déplace la souris sur un mot"));
		c.add(textArea);
	}

	class HighlighterListener extends MouseAdapter implements CaretListener {

		@Override
		public void caretUpdate(CaretEvent e) {
			int selectionEnd = e.getDot();
			int selectionBegin = e.getMark();
			int begin = getTextBeginIndex(getText(e), selectionBegin);
			int end = getTextEndIndex(getText(e), selectionEnd);
			try {
				highlight((JTextArea) e.getSource(), begin, end);
			} catch (BadLocationException e1) {
				e1.printStackTrace();
			}
		}

		@Override
		public void mouseMoved(MouseEvent e) {
			int x = e.getX();
			int y = e.getY();
			JTextArea textArea = (JTextArea) e.getSource();

			int locationOfCharUnderMouse = textArea
					.viewToModel(new Point(x, y));
			int begin = getTextBeginIndex(getText(e), locationOfCharUnderMouse);
			int end = getTextEndIndex(getText(e), locationOfCharUnderMouse);
			try {
				highlight((JTextArea) e.getSource(), begin, end);
			} catch (BadLocationException e1) {
				e1.printStackTrace();
			}

		}

		private String getText(EventObject e) {
			return ((JTextArea) e.getSource()).getText();
		}

		private int getTextBeginIndex(String text, int startFromIndex) {
			for (int i = startFromIndex - 1; i > -1; i--) {
				if (text.substring(i, i + 1).equals(" "))
					return i + 1;
			}
			return 0;
		}

		private int getTextEndIndex(String text, int startFromIndex) {
			for (int i = startFromIndex; i < text.length(); i++) {
				if (text.substring(i, i + 1).equals(" "))
					return i;
			}
			return text.length();
		}

		private void highlight(JTextArea textarea, int begin, int end)
				throws BadLocationException {
			DefaultHighlighter.DefaultHighlightPainter highlighter = new DefaultHighlighter.DefaultHighlightPainter(
					Color.YELLOW);
			textarea.getHighlighter().removeAllHighlights();
			textarea.getHighlighter().addHighlight(begin, end, highlighter);
		}

	}

	public static void main(String[] args) {
		HighlighterDemo demo = new HighlighterDemo();
		demo.pack();
		demo.setVisible(true);
	}
}



;-)
HackTrack
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 85385 internautes nous ont dit merci ce mois-ci

Messages postés
5
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
6 août 2012

Merci Beaucoup c'est exactement ce que je cherchais
:)
Au revoir.
Messages postés
623
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
11 novembre 2012
967
Salut!

Il s'agit d'une application Swing ou d'une application Web?

;-)
Messages postés
5
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
6 août 2012

Salut,

Une application Swing, j'ai oublié de le préciser ... sorry :p