Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #4440
| From | "John B. Matthews" <john.b..matthews@THRWHITE.remove-dii-this> |
|---|---|
| Subject | Re: Swing component to di |
| Message-ID | <nospam-B9F365.11491708112008@feeder.motzarella.org> (permalink) |
| Newsgroups | comp.lang.java.gui |
| References | <4915ae3d$0$6077$7836cce5@newsrazor.net> |
| Date | 2011-04-27 15:50 +0000 |
| Organization | TDS.net |
To: comp.lang.java.gui
In article <4915ae3d$0$6077$7836cce5@newsrazor.net>,
Daniel Pitts <newsgroup.spamfilter@virtualinfinity.net> wrote:
> lbrtchx@gmail.com wrote:
> > ~
> > I need to display a combination of text, diagrams and MathML based
> > formulas on a swing component in a way that, say, when you hover
> > the mouse or click on parts of the text, the corresponding parts in
> > the diagrams and/or formulas get highlighted or some action happens
> > on them
> > ~
> > I did a search on:
> > ~
> > MathML formula swing class "import java "
> > ~
> > which gave me nothing useful
> > ~
> > What would be the right swing text container/components to use? Do
> > you know of any example of such a thing out there?
>
> googling for just mathml java turned up
> <http://www.w3.org/Math/Software/mathml_software_cat_editors.html>
>
> Might be a good place to start.
>
> You might have to actually write some code if nothing fits out-of-the-box.
For text and diagrams, an HTMLDocument, which implements the Document
interface, might suffice:
<http://java.sun.com/javase/6/docs/api/javax/swing/text/Document.html>
<code>
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.io.IOException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
/** @author John B. Matthews */
public class HtmlView extends JPanel
implements DocumentListener, HyperlinkListener {
private static final String name = "http://www.example.com";
JEditorPane jep;
Document doc;
public HtmlView() {
this.setLayout(new GridLayout(1, 1));
jep = new JEditorPane();
jep.setEditable(false);
jep.addHyperlinkListener(this);
loadPage(jep, name);
doc = jep.getDocument();
doc.addDocumentListener(this);
JScrollPane sp = new JScrollPane(jep);
this.setPreferredSize(new Dimension(640, 480));
this.add(sp);
}
private void loadPage(JEditorPane jep, String name) {
try {
jep.setPage(name);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
public void insertUpdate(DocumentEvent e) {}
public void removeUpdate(DocumentEvent e) {}
public void changedUpdate(DocumentEvent e) {
try {
System.out.println(doc.getText(0, doc.getLength()));
} catch (BadLocationException ble) {
ble.printStackTrace();
}
}
public void hyperlinkUpdate(HyperlinkEvent e) {
HyperlinkEvent.EventType type = e.getEventType();
final URL url = e.getURL();
if (type == HyperlinkEvent.EventType.ENTERED) {
System.out.println("URL: " + url);
} else if (type == HyperlinkEvent.EventType.ACTIVATED) {
System.out.println("Following link...");
try {
jep.setPage(url);
} catch (IOException ioException) {
System.out.println("Invalid link");
jep.setDocument(doc);
}
}
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new HtmlView(), BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
});
}
}
</code>
I don't know about MathML, but you might look for a corresponding
implementation of the Document interface.
--
John B. Matthews
trashgod at gmail dot com
http://home.roadrunner.com/~jbmatthews/
---
* Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24
Back to comp.lang.java.gui | Previous | Next — Previous in thread | Find similar
Swing component to displa "lbrtchx" <lbrtchx@THRWHITE.remove-dii-this> - 2011-04-27 15:50 +0000
Re: Swing component to di "Daniel Pitts" <daniel.pitts@THRWHITE.remove-dii-this> - 2011-04-27 15:50 +0000
Re: Swing component to di "John B. Matthews" <john.b..matthews@THRWHITE.remove-dii-this> - 2011-04-27 15:50 +0000
csiph-web