Note that there are some explanatory texts on larger screens.

plurals
  1. POsuggestions for declarative GUI programming in Java
    primarykey
    data
    text
    <p>I wonder if there are any suggestions for declarative GUI programming in Java. (I abhor visual-based GUI creator/editor software, but am getting a little tired of manually instantiating JPanels and Boxes and JLabels and JLists etc.)</p> <p>That's my overall question, but I have two specific questions for approaches I'm thinking of taking:</p> <ol> <li><p>JavaFX: is there an example somewhere of a realistic GUI display (e.g. not circles and rectangles, but listboxes and buttons and labels and the like) in JavaFX, which can interface with a Java sourcefile that accesses and updates various elements?</p></li> <li><p>Plain Old Swing with something to parse XUL-ish XML: has anyone invented a declarative syntax (like XUL) for XML for use with Java Swing? I suppose it wouldn't be hard to do, to create some code based on STaX which reads an XML file, instantiates a hierarchy of Swing elements, and makes the hierarchy accessible through some kind of object model. But I'd rather use something that's well-known and documented and tested than to try to invent such a thing myself.</p></li> <li><p><a href="http://www.jgoodies.com/freeware/forms/" rel="noreferrer">JGoodies Forms</a> -- not exactly declarative, but kinda close &amp; I've had good luck with JGoodies Binding. But their syntax for Form Layout seems kinda cryptic.</p></li> </ol> <p><strong>edit:</strong> lots of great answers here! (&amp; I added #3 above) I'd be especially grateful for hearing any experiences any of you have had with using one of these frameworks for real-world applications.</p> <p>p.s. I did try a few google searches ("java gui declarative"), just didn't quite know what to look for.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload