Recommandez moi un Objet Graphique SVP

Résolu/Fermé
oubaalouni Messages postés 5 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 août 2012 - 2 août 2012 à 17:34
oubaalouni Messages postés 5 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 août 2012 - 6 août 2012 à 15:00
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 :)


A voir également:

3 réponses

Utilisateur anonyme
4 août 2012 à 19:49
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
oubaalouni Messages postés 5 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 août 2012
6 août 2012 à 15:00
Merci Beaucoup c'est exactement ce que je cherchais
:)
Au revoir.
0
Utilisateur anonyme
4 août 2012 à 09:50
Salut!

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

;-)
0
oubaalouni Messages postés 5 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 août 2012
4 août 2012 à 16:06
Salut,

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