diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java index 8cf9fac0..020468c0 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.java @@ -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[] 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 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 ----------------------------------------- diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd index ee2bb6ac..cc48bba2 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemePreview.jfd @@ -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"