From a78df1dd5ed06a805577d2b006c5c6a583ba009a Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Mon, 18 Dec 2023 18:48:22 -0500 Subject: [PATCH] Scrolling panel with toolbar at top example. --- demo-single-app/src/basic/MainFrame.java | 2 + .../src/basic/ScrollingWithToolbarPanel.java | 46 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 demo-single-app/src/basic/ScrollingWithToolbarPanel.java diff --git a/demo-single-app/src/basic/MainFrame.java b/demo-single-app/src/basic/MainFrame.java index a5a40889..34d13e79 100644 --- a/demo-single-app/src/basic/MainFrame.java +++ b/demo-single-app/src/basic/MainFrame.java @@ -175,6 +175,7 @@ public void setVisible(boolean visible) { ToolPanel explorer = new ToolPanel("Explorer", "explorer", DockableStyle.VERTICAL, new ImageIcon(Objects.requireNonNull(getClass().getResource("/icons/light/icons8-vga-16.png")))); ToolPanel output = new OutputPanel("Output", "output", DockableStyle.HORIZONTAL, new ImageIcon(Objects.requireNonNull(getClass().getResource("/icons/light/icons8-vga-16.png")))); AlwaysDisplayedPanel alwaysDisplayed = new AlwaysDisplayedPanel("always displayed", "always-displayed"); + ScrollingWithToolbarPanel scrolling = new ScrollingWithToolbarPanel(); PropertiesDemoPanel propertiesDemoPanel = new PropertiesDemoPanel(); @@ -224,6 +225,7 @@ public void setVisible(boolean visible) { view.add(new DockableMenuItem(() -> ((Dockable) alwaysDisplayed).getPersistentID(), ((Dockable) alwaysDisplayed).getTabText())); view.add(changeText); view.add(actionListenDock(themes)); + view.add(actionListenDock(scrolling)); JMenuItem storeCurrentLayout = new JMenuItem("Store Current Layout..."); storeCurrentLayout.addActionListener(e -> { diff --git a/demo-single-app/src/basic/ScrollingWithToolbarPanel.java b/demo-single-app/src/basic/ScrollingWithToolbarPanel.java new file mode 100644 index 00000000..af53bd5e --- /dev/null +++ b/demo-single-app/src/basic/ScrollingWithToolbarPanel.java @@ -0,0 +1,46 @@ +package basic; + +import javax.swing.*; +import java.awt.*; + +public class ScrollingWithToolbarPanel extends BasePanel { + public ScrollingWithToolbarPanel() { + super("Scrolling With Toolbar", "scroll-with-toolbar"); + + setLayout(new GridBagLayout()); + + JToolBar toolBar = new JToolBar(); + toolBar.add(new JButton("Add")); + toolBar.add(new JButton("Remove")); + + JPanel panel = new JPanel(); + panel.setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 1; + gbc.weighty = 0; + gbc.fill = GridBagConstraints.HORIZONTAL; + + for (int i = 0; i < 30; i++) { + panel.add(new JLabel("label " + i), gbc); + gbc.gridy++; + } + + gbc.gridy = 0; + add(toolBar, gbc); + + gbc.gridy++; + gbc.weightx = 1; + gbc.weighty = 1; + gbc.fill = GridBagConstraints.BOTH; + + add(new JScrollPane(panel), gbc); + } + + @Override + public boolean isWrappableInScrollpane() { + return false; + } +}