Theme Editor: added list, tree and table to preview

This commit is contained in:
Karl Tauber
2021-08-24 21:49:09 +02:00
parent ef06840649
commit f8f58400fe
2 changed files with 160 additions and 2 deletions

View File

@@ -26,6 +26,9 @@ import javax.swing.UIDefaults.ActiveValue;
import javax.swing.UIDefaults.LazyValue;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.extras.components.*;
import com.formdev.flatlaf.ui.FlatTabbedPaneUI;
@@ -57,6 +60,10 @@ class FlatThemePreview
tabbedPane1.addTab( "Tab 7", null );
tabbedPane1.addTab( "Tab 8", null );
list1.setSelectedIndex( 1 );
tree1.setSelectionRow( 1 );
table1.setRowSelectionInterval( 1, 1 );
// timer used for delayed preview updates
timer = new Timer( 300, e -> update() );
timer.setRepeats( false );
@@ -302,6 +309,14 @@ class FlatThemePreview
toolTip1 = new JToolTip();
tabbedPaneLabel = new JLabel();
tabbedPane1 = new FlatThemePreview.PreviewTabbedPane();
listTreeLabel = new JLabel();
scrollPane2 = new JScrollPane();
list1 = new JList<>();
scrollPane3 = new JScrollPane();
tree1 = new JTree();
tableLabel = new JLabel();
scrollPane4 = new JScrollPane();
table1 = new JTable();
//======== this ========
setLayout(new MigLayout(
@@ -334,6 +349,8 @@ class FlatThemePreview
"[]" +
"[]" +
"[]" +
"[]" +
"[]" +
"[grow]"));
//---- previewSeparator ----
@@ -685,6 +702,66 @@ class FlatThemePreview
add(tabbedPaneLabel, "cell 0 23");
add(tabbedPane1, "cell 1 23");
//---- listTreeLabel ----
listTreeLabel.setText("JList / JTree:");
add(listTreeLabel, "cell 0 24");
//======== scrollPane2 ========
{
//---- list1 ----
list1.setModel(new AbstractListModel<String>() {
String[] values = {
"Item 1",
"Item 2",
"Item 3"
};
@Override
public int getSize() { return values.length; }
@Override
public String getElementAt(int i) { return values[i]; }
});
scrollPane2.setViewportView(list1);
}
add(scrollPane2, "cell 1 24,width 50,height 50");
//======== scrollPane3 ========
{
scrollPane3.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
//---- tree1 ----
tree1.setModel(new DefaultTreeModel(
new DefaultMutableTreeNode("Item 1") {
{
add(new DefaultMutableTreeNode("Item 2"));
add(new DefaultMutableTreeNode("Item 3"));
}
}));
scrollPane3.setViewportView(tree1);
}
add(scrollPane3, "cell 1 24,width 50,height 50");
//---- tableLabel ----
tableLabel.setText("JTable:");
add(tableLabel, "cell 0 25");
//======== scrollPane4 ========
{
//---- table1 ----
table1.setModel(new DefaultTableModel(
new Object[][] {
{"Item 1a", "Item 1b"},
{"Item 2a", "Item 2b"},
},
new String[] {
"Column 1", "Column 2"
}
));
scrollPane4.setViewportView(table1);
}
add(scrollPane4, "cell 1 25,height 70");
//---- buttonGroup1 ----
ButtonGroup buttonGroup1 = new ButtonGroup();
buttonGroup1.add(radioButton1);
@@ -773,6 +850,14 @@ class FlatThemePreview
private JToolTip toolTip1;
private JLabel tabbedPaneLabel;
private FlatThemePreview.PreviewTabbedPane tabbedPane1;
private JLabel listTreeLabel;
private JScrollPane scrollPane2;
private JList<String> list1;
private JScrollPane scrollPane3;
private JTree tree1;
private JLabel tableLabel;
private JScrollPane scrollPane4;
private JTable table1;
// JFormDesigner - End of variables declaration //GEN-END:variables
//---- class PreviewDefaultButton -----------------------------------------

View File

@@ -6,7 +6,7 @@ new FormModel {
add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
"$layoutConstraints": "insets dialog,hidemode 3"
"$columnConstraints": "[fill][130,fill]"
"$rowConstraints": "[]0[]unrel[][][][][][][][][][][][][][][][][][][][][][][grow]"
"$rowConstraints": "[]0[]unrel[][][][][][][][][][][][][][][][][][][][][][][][][grow]"
} ) {
name: "this"
add( new FormComponent( "javax.swing.JSeparator" ) {
@@ -499,9 +499,82 @@ new FormModel {
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 23"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "listTreeLabel"
"text": "JList / JTree:"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 24"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane2"
add( new FormComponent( "javax.swing.JList" ) {
name: "list1"
"model": new javax.swing.DefaultListModel {
addElement( "Item 1" )
addElement( "Item 2" )
addElement( "Item 3" )
}
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 24,width 50,height 50"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane3"
"horizontalScrollBarPolicy": 31
add( new FormComponent( "javax.swing.JTree" ) {
name: "tree1"
"model": new javax.swing.tree.DefaultTreeModel( new javax.swing.tree.DefaultMutableTreeNode {
userObject: "Item 1"
add( new javax.swing.tree.DefaultMutableTreeNode {
userObject: "Item 2"
} )
add( new javax.swing.tree.DefaultMutableTreeNode {
userObject: "Item 3"
} )
} )
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 24,width 50,height 50"
} )
add( new FormComponent( "javax.swing.JLabel" ) {
name: "tableLabel"
"text": "JTable:"
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 25"
} )
add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
name: "scrollPane4"
add( new FormComponent( "javax.swing.JTable" ) {
name: "table1"
"model": new com.jformdesigner.model.SwingTableModel( new java.util.Vector {
add( new java.util.Vector {
add( "Item 1a" )
add( "Item 1b" )
} )
add( new java.util.Vector {
add( "Item 2a" )
add( "Item 2b" )
} )
}, new java.util.Vector {
add( "Column 1" )
add( "Column 2" )
}, new java.util.Vector {
add( null )
add( null )
}, new java.util.Vector {
add( null )
add( null )
}, new java.util.Vector {
add( null )
add( null )
} )
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 25,height 70"
} )
}, new FormLayoutConstraints( null ) {
"location": new java.awt.Point( 0, 0 )
"size": new java.awt.Dimension( 400, 785 )
"size": new java.awt.Dimension( 400, 915 )
} )
add( new FormNonVisual( "javax.swing.ButtonGroup" ) {
name: "buttonGroup1"