mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-11 06:27:13 -06:00
TabbedPane: completed review of PR #343 (active tab border painting style)
- replaced `activeTabBorder` with `tabType` - added `TabbedPane.cardTabSelectionHeight`
This commit is contained in:
@@ -980,6 +980,7 @@ TabbedPane.buttonArc 6
|
||||
TabbedPane.buttonHoverBackground #303234 com.formdev.flatlaf.util.DerivedColor [UI] darken(5%)
|
||||
TabbedPane.buttonInsets 2,1,2,1 javax.swing.plaf.InsetsUIResource [UI]
|
||||
TabbedPane.buttonPressedBackground #282a2c com.formdev.flatlaf.util.DerivedColor [UI] darken(8%)
|
||||
TabbedPane.cardTabSelectionHeight 2
|
||||
TabbedPane.closeArc 4
|
||||
TabbedPane.closeCrossFilledSize 7.5
|
||||
TabbedPane.closeCrossLineWidth 1.0
|
||||
@@ -1022,6 +1023,7 @@ TabbedPane.tabInsets 4,12,4,12 javax.swing.plaf.InsetsUIResource [U
|
||||
TabbedPane.tabRunOverlay 0
|
||||
TabbedPane.tabSelectionHeight 3
|
||||
TabbedPane.tabSeparatorsFullHeight false
|
||||
TabbedPane.tabType underlined
|
||||
TabbedPane.tabWidthMode preferred
|
||||
TabbedPane.tabsOpaque true
|
||||
TabbedPane.tabsOverlapBorder false
|
||||
|
||||
@@ -985,6 +985,7 @@ TabbedPane.buttonArc 6
|
||||
TabbedPane.buttonHoverBackground #e0e0e0 com.formdev.flatlaf.util.DerivedColor [UI] darken(7% autoInverse)
|
||||
TabbedPane.buttonInsets 2,1,2,1 javax.swing.plaf.InsetsUIResource [UI]
|
||||
TabbedPane.buttonPressedBackground #d9d9d9 com.formdev.flatlaf.util.DerivedColor [UI] darken(10% autoInverse)
|
||||
TabbedPane.cardTabSelectionHeight 2
|
||||
TabbedPane.closeArc 4
|
||||
TabbedPane.closeCrossFilledSize 7.5
|
||||
TabbedPane.closeCrossLineWidth 1.0
|
||||
@@ -1027,6 +1028,7 @@ TabbedPane.tabInsets 4,12,4,12 javax.swing.plaf.InsetsUIResource [U
|
||||
TabbedPane.tabRunOverlay 0
|
||||
TabbedPane.tabSelectionHeight 3
|
||||
TabbedPane.tabSeparatorsFullHeight false
|
||||
TabbedPane.tabType underlined
|
||||
TabbedPane.tabWidthMode preferred
|
||||
TabbedPane.tabsOpaque true
|
||||
TabbedPane.tabsOverlapBorder false
|
||||
|
||||
@@ -980,6 +980,7 @@ TabbedPane.buttonArc 6
|
||||
TabbedPane.buttonHoverBackground #ffff00 javax.swing.plaf.ColorUIResource [UI]
|
||||
TabbedPane.buttonInsets 2,1,2,1 javax.swing.plaf.InsetsUIResource [UI]
|
||||
TabbedPane.buttonPressedBackground #ffc800 javax.swing.plaf.ColorUIResource [UI]
|
||||
TabbedPane.cardTabSelectionHeight 2
|
||||
TabbedPane.closeArc 999
|
||||
TabbedPane.closeCrossFilledSize 6.5
|
||||
TabbedPane.closeCrossLineWidth 2.0
|
||||
@@ -1025,6 +1026,7 @@ TabbedPane.tabRunOverlay 0
|
||||
TabbedPane.tabSelectionHeight 3
|
||||
TabbedPane.tabSeparatorColor #0000ff javax.swing.plaf.ColorUIResource [UI]
|
||||
TabbedPane.tabSeparatorsFullHeight false
|
||||
TabbedPane.tabType underlined
|
||||
TabbedPane.tabWidthMode preferred
|
||||
TabbedPane.tabsOpaque true
|
||||
TabbedPane.tabsOverlapBorder false
|
||||
|
||||
@@ -50,6 +50,8 @@ public class FlatContainerTest
|
||||
public FlatContainerTest() {
|
||||
initComponents();
|
||||
|
||||
tabTypeComboBox.init( TabType.class, true );
|
||||
|
||||
tabPlacementField.init( TabPlacement.class, true );
|
||||
iconPlacementField.init( TabIconPlacement.class, true );
|
||||
tabsPopupPolicyField.init( TabsPopupPolicy.class, true );
|
||||
@@ -310,6 +312,12 @@ public class FlatContainerTest
|
||||
tabbedPane.setTabWidthMode( value );
|
||||
}
|
||||
|
||||
private void tabTypeChanged() {
|
||||
TabType value = tabTypeComboBox.getSelectedValue();
|
||||
for( FlatTabbedPane tabbedPane : allTabbedPanes )
|
||||
tabbedPane.setTabType( value );
|
||||
}
|
||||
|
||||
private void tabBackForegroundChanged() {
|
||||
for( JTabbedPane tabbedPane : allTabbedPanes )
|
||||
tabBackForegroundChanged( tabbedPane );
|
||||
@@ -491,6 +499,8 @@ public class FlatContainerTest
|
||||
tabAlignmentField = new FlatTestEnumComboBox<>();
|
||||
JLabel tabWidthModeLabel = new JLabel();
|
||||
tabWidthModeField = new FlatTestEnumComboBox<>();
|
||||
JLabel tabTypeLabel = new JLabel();
|
||||
tabTypeComboBox = new FlatTestEnumComboBox<>();
|
||||
leadingComponentCheckBox = new JCheckBox();
|
||||
customBorderCheckBox = new JCheckBox();
|
||||
tabAreaInsetsCheckBox = new JCheckBox();
|
||||
@@ -619,6 +629,7 @@ public class FlatContainerTest
|
||||
"[]" +
|
||||
"[]" +
|
||||
"[]" +
|
||||
"[]" +
|
||||
"[]para" +
|
||||
"[]" +
|
||||
"[]para" +
|
||||
@@ -739,75 +750,83 @@ public class FlatContainerTest
|
||||
tabWidthModeField.addActionListener(e -> tabWidthModeChanged());
|
||||
tabbedPaneControlPanel.add(tabWidthModeField, "cell 2 5");
|
||||
|
||||
//---- tabTypeLabel ----
|
||||
tabTypeLabel.setText("Tab type:");
|
||||
tabbedPaneControlPanel.add(tabTypeLabel, "cell 0 6");
|
||||
|
||||
//---- tabTypeComboBox ----
|
||||
tabTypeComboBox.addActionListener(e -> tabTypeChanged());
|
||||
tabbedPaneControlPanel.add(tabTypeComboBox, "cell 1 6");
|
||||
|
||||
//---- leadingComponentCheckBox ----
|
||||
leadingComponentCheckBox.setText("Leading component");
|
||||
leadingComponentCheckBox.addActionListener(e -> leadingComponentChanged());
|
||||
tabbedPaneControlPanel.add(leadingComponentCheckBox, "cell 0 6");
|
||||
tabbedPaneControlPanel.add(leadingComponentCheckBox, "cell 0 7");
|
||||
|
||||
//---- customBorderCheckBox ----
|
||||
customBorderCheckBox.setText("Custom border");
|
||||
customBorderCheckBox.addActionListener(e -> customBorderChanged());
|
||||
tabbedPaneControlPanel.add(customBorderCheckBox, "cell 1 6");
|
||||
tabbedPaneControlPanel.add(customBorderCheckBox, "cell 1 7");
|
||||
|
||||
//---- tabAreaInsetsCheckBox ----
|
||||
tabAreaInsetsCheckBox.setText("Tab area insets (5,5,10,10)");
|
||||
tabAreaInsetsCheckBox.addActionListener(e -> tabAreaInsetsChanged());
|
||||
tabbedPaneControlPanel.add(tabAreaInsetsCheckBox, "cell 2 6");
|
||||
tabbedPaneControlPanel.add(tabAreaInsetsCheckBox, "cell 2 7");
|
||||
|
||||
//---- trailingComponentCheckBox ----
|
||||
trailingComponentCheckBox.setText("Trailing component");
|
||||
trailingComponentCheckBox.addActionListener(e -> trailingComponentChanged());
|
||||
tabbedPaneControlPanel.add(trailingComponentCheckBox, "cell 0 7");
|
||||
tabbedPaneControlPanel.add(trailingComponentCheckBox, "cell 0 8");
|
||||
|
||||
//---- hasFullBorderCheckBox ----
|
||||
hasFullBorderCheckBox.setText("Show content border");
|
||||
hasFullBorderCheckBox.addActionListener(e -> hasFullBorderChanged());
|
||||
tabbedPaneControlPanel.add(hasFullBorderCheckBox, "cell 1 7,alignx left,growx 0");
|
||||
tabbedPaneControlPanel.add(hasFullBorderCheckBox, "cell 1 8,alignx left,growx 0");
|
||||
|
||||
//---- smallerTabHeightCheckBox ----
|
||||
smallerTabHeightCheckBox.setText("Smaller tab height (26)");
|
||||
smallerTabHeightCheckBox.addActionListener(e -> smallerTabHeightChanged());
|
||||
tabbedPaneControlPanel.add(smallerTabHeightCheckBox, "cell 2 7");
|
||||
tabbedPaneControlPanel.add(smallerTabHeightCheckBox, "cell 2 8");
|
||||
|
||||
//---- minimumTabWidthCheckBox ----
|
||||
minimumTabWidthCheckBox.setText("Minimum tab width (100)");
|
||||
minimumTabWidthCheckBox.addActionListener(e -> minimumTabWidthChanged());
|
||||
tabbedPaneControlPanel.add(minimumTabWidthCheckBox, "cell 0 8");
|
||||
tabbedPaneControlPanel.add(minimumTabWidthCheckBox, "cell 0 9");
|
||||
|
||||
//---- hideContentSeparatorCheckBox ----
|
||||
hideContentSeparatorCheckBox.setText("Hide content separator");
|
||||
hideContentSeparatorCheckBox.addActionListener(e -> hideContentSeparatorChanged());
|
||||
tabbedPaneControlPanel.add(hideContentSeparatorCheckBox, "cell 1 8");
|
||||
tabbedPaneControlPanel.add(hideContentSeparatorCheckBox, "cell 1 9");
|
||||
|
||||
//---- smallerInsetsCheckBox ----
|
||||
smallerInsetsCheckBox.setText("Smaller tab insets (2,2,2,2)");
|
||||
smallerInsetsCheckBox.addActionListener(e -> smallerInsetsChanged());
|
||||
tabbedPaneControlPanel.add(smallerInsetsCheckBox, "cell 2 8");
|
||||
tabbedPaneControlPanel.add(smallerInsetsCheckBox, "cell 2 9");
|
||||
|
||||
//---- maximumTabWidthCheckBox ----
|
||||
maximumTabWidthCheckBox.setText("Maximum tab width (60)");
|
||||
maximumTabWidthCheckBox.addActionListener(e -> maximumTabWidthChanged());
|
||||
tabbedPaneControlPanel.add(maximumTabWidthCheckBox, "cell 0 9");
|
||||
tabbedPaneControlPanel.add(maximumTabWidthCheckBox, "cell 0 10");
|
||||
|
||||
//---- showTabSeparatorsCheckBox ----
|
||||
showTabSeparatorsCheckBox.setText("Show tab separators");
|
||||
showTabSeparatorsCheckBox.addActionListener(e -> showTabSeparatorsChanged());
|
||||
tabbedPaneControlPanel.add(showTabSeparatorsCheckBox, "cell 1 9");
|
||||
tabbedPaneControlPanel.add(showTabSeparatorsCheckBox, "cell 1 10");
|
||||
|
||||
//---- secondTabWiderCheckBox ----
|
||||
secondTabWiderCheckBox.setText("Second Tab insets wider (4,20,4,20)");
|
||||
secondTabWiderCheckBox.addActionListener(e -> secondTabWiderChanged());
|
||||
tabbedPaneControlPanel.add(secondTabWiderCheckBox, "cell 2 9");
|
||||
tabbedPaneControlPanel.add(secondTabWiderCheckBox, "cell 2 10");
|
||||
|
||||
//---- hideTabAreaWithOneTabCheckBox ----
|
||||
hideTabAreaWithOneTabCheckBox.setText("Hide tab area with one tab");
|
||||
hideTabAreaWithOneTabCheckBox.addActionListener(e -> hideTabAreaWithOneTabChanged());
|
||||
tabbedPaneControlPanel.add(hideTabAreaWithOneTabCheckBox, "cell 1 10");
|
||||
tabbedPaneControlPanel.add(hideTabAreaWithOneTabCheckBox, "cell 1 11");
|
||||
|
||||
//---- customWheelScrollingCheckBox ----
|
||||
customWheelScrollingCheckBox.setText("Custom wheel scrolling");
|
||||
customWheelScrollingCheckBox.addActionListener(e -> customWheelScrollingChanged());
|
||||
tabbedPaneControlPanel.add(customWheelScrollingCheckBox, "cell 2 10");
|
||||
tabbedPaneControlPanel.add(customWheelScrollingCheckBox, "cell 2 11");
|
||||
}
|
||||
panel9.add(tabbedPaneControlPanel, cc.xywh(1, 11, 3, 1));
|
||||
}
|
||||
@@ -840,6 +859,7 @@ public class FlatContainerTest
|
||||
private FlatTestEnumComboBox<TabAreaAlignment> tabAreaAlignmentField;
|
||||
private FlatTestEnumComboBox<TabAlignment> tabAlignmentField;
|
||||
private FlatTestEnumComboBox<TabWidthMode> tabWidthModeField;
|
||||
private FlatTestEnumComboBox<TabType> tabTypeComboBox;
|
||||
private JCheckBox leadingComponentCheckBox;
|
||||
private JCheckBox customBorderCheckBox;
|
||||
private JCheckBox tabAreaInsetsCheckBox;
|
||||
|
||||
@@ -132,7 +132,7 @@ new FormModel {
|
||||
add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestFrame$NoRightToLeftPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
|
||||
"$layoutConstraints": "insets 0,hidemode 3"
|
||||
"$columnConstraints": "[][fill][]"
|
||||
"$rowConstraints": "[center][][][][][]para[][]para[][][]"
|
||||
"$rowConstraints": "[center][][][][][][]para[][]para[][][]"
|
||||
} ) {
|
||||
name: "tabbedPaneControlPanel"
|
||||
"opaque": false
|
||||
@@ -372,6 +372,22 @@ new FormModel {
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 5"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||
name: "tabTypeLabel"
|
||||
"text": "Tab type:"
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 6"
|
||||
} )
|
||||
add( new FormComponent( "com.formdev.flatlaf.testing.FlatTestEnumComboBox" ) {
|
||||
name: "tabTypeComboBox"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.typeParameters": "TabType"
|
||||
"JavaCodeGenerator.variableLocal": false
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "tabTypeChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 6"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "leadingComponentCheckBox"
|
||||
"text": "Leading component"
|
||||
@@ -380,7 +396,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "leadingComponentChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 6"
|
||||
"value": "cell 0 7"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "customBorderCheckBox"
|
||||
@@ -390,7 +406,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "customBorderChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 6"
|
||||
"value": "cell 1 7"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "tabAreaInsetsCheckBox"
|
||||
@@ -400,7 +416,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "tabAreaInsetsChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 6"
|
||||
"value": "cell 2 7"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "trailingComponentCheckBox"
|
||||
@@ -410,7 +426,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "trailingComponentChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 7"
|
||||
"value": "cell 0 8"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "hasFullBorderCheckBox"
|
||||
@@ -420,7 +436,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hasFullBorderChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 7,alignx left,growx 0"
|
||||
"value": "cell 1 8,alignx left,growx 0"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "smallerTabHeightCheckBox"
|
||||
@@ -430,7 +446,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "smallerTabHeightChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 7"
|
||||
"value": "cell 2 8"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "minimumTabWidthCheckBox"
|
||||
@@ -440,7 +456,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "minimumTabWidthChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 8"
|
||||
"value": "cell 0 9"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "hideContentSeparatorCheckBox"
|
||||
@@ -450,7 +466,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hideContentSeparatorChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 8"
|
||||
"value": "cell 1 9"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "smallerInsetsCheckBox"
|
||||
@@ -460,7 +476,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "smallerInsetsChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 8"
|
||||
"value": "cell 2 9"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "maximumTabWidthCheckBox"
|
||||
@@ -470,7 +486,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "maximumTabWidthChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 9"
|
||||
"value": "cell 0 10"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "showTabSeparatorsCheckBox"
|
||||
@@ -480,7 +496,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showTabSeparatorsChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 9"
|
||||
"value": "cell 1 10"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "secondTabWiderCheckBox"
|
||||
@@ -490,7 +506,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "secondTabWiderChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 9"
|
||||
"value": "cell 2 10"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "hideTabAreaWithOneTabCheckBox"
|
||||
@@ -500,7 +516,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "hideTabAreaWithOneTabChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 1 10"
|
||||
"value": "cell 1 11"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "customWheelScrollingCheckBox"
|
||||
@@ -510,7 +526,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "customWheelScrollingChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 2 10"
|
||||
"value": "cell 2 11"
|
||||
} )
|
||||
}, new FormLayoutConstraints( class com.jgoodies.forms.layout.CellConstraints ) {
|
||||
"gridY": 11
|
||||
|
||||
Reference in New Issue
Block a user