Recommandez moi un Objet Graphique SVP

Résolu
oubaalouni Messages postés 5 Statut Membre -  
oubaalouni Messages postés 5 Statut Membre -
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
 
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 Statut Membre
 
Merci Beaucoup c'est exactement ce que je cherchais
:)
Au revoir.
0
Utilisateur anonyme
 
Salut!

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

;-)
0
oubaalouni Messages postés 5 Statut Membre
 
Salut,

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