ScrollPane: increase viewport width for rounded border to remove/reduce gap between view and vertical scrollbar

This commit is contained in:
Karl Tauber
2023-08-27 18:14:03 +02:00
parent 40418607e5
commit 0c604b1023
3 changed files with 94 additions and 15 deletions

View File

@@ -24,6 +24,8 @@ import java.util.Arrays;
import java.util.stream.Collectors;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.MatteBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.tree.*;
import com.formdev.flatlaf.FlatClientProperties;
@@ -212,6 +214,19 @@ public class FlatRoundedScrollPaneTest
: "?" );
}
private void viewportBorderChanged() {
Border viewportBorder = viewportBorderCheckBox.isSelected()
? new CompoundBorder(
new MatteBorder( 1, 1, 0, 0, Color.red ),
new MatteBorder( 0, 0, 1, 1, Color.blue ) )
: null;
for( JScrollPane scrollPane : allJScrollPanes ) {
scrollPane.setViewportBorder( viewportBorder );
scrollPane.revalidate();
scrollPane.repaint();
}
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
splitPane2 = new JSplitPane();
@@ -247,6 +262,7 @@ public class FlatRoundedScrollPaneTest
cornersCheckBox = new JCheckBox();
columnHeaderCheckBox = new JCheckBox();
horizontalScrollBarCheckBox = new JCheckBox();
viewportBorderCheckBox = new JCheckBox();
rowHeaderCheckBox = new JCheckBox();
verticalScrollBarCheckBox = new JCheckBox();
@@ -437,6 +453,11 @@ public class FlatRoundedScrollPaneTest
horizontalScrollBarCheckBox.addActionListener(e -> horizontalScrollBarChanged());
panel3.add(horizontalScrollBarCheckBox, "cell 4 0");
//---- viewportBorderCheckBox ----
viewportBorderCheckBox.setText("Viewport border");
viewportBorderCheckBox.addActionListener(e -> viewportBorderChanged());
panel3.add(viewportBorderCheckBox, "cell 2 1");
//---- rowHeaderCheckBox ----
rowHeaderCheckBox.setText("Row Header");
rowHeaderCheckBox.addActionListener(e -> rowHeaderChanged());
@@ -485,6 +506,7 @@ public class FlatRoundedScrollPaneTest
private JCheckBox cornersCheckBox;
private JCheckBox columnHeaderCheckBox;
private JCheckBox horizontalScrollBarCheckBox;
private JCheckBox viewportBorderCheckBox;
private JCheckBox rowHeaderCheckBox;
private JCheckBox verticalScrollBarCheckBox;
// JFormDesigner - End of variables declaration //GEN-END:variables

View File

@@ -1,4 +1,4 @@
JFDML JFormDesigner: "8.1.0.0.283" Java: "19.0.2" encoding: "UTF-8"
JFDML JFormDesigner: "8.1.1.0.298" Java: "19.0.2" encoding: "UTF-8"
new FormModel {
contentType: "form/swing"
@@ -216,6 +216,13 @@ new FormModel {
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 4 0"
} )
add( new FormComponent( "javax.swing.JCheckBox" ) {
name: "viewportBorderCheckBox"
"text": "Viewport border"
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "viewportBorderChanged", false ) )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 1"
} )
add( new FormComponent( "javax.swing.JCheckBox" ) {
name: "rowHeaderCheckBox"
"text": "Row Header"