From 0942cb783b89b6079cd9cdd8a581eb8cb71d0361 Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 17 Aug 2024 15:13:38 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-127437=20fix:=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E5=A2=9E=E5=8A=A0=E7=B1=BB=E5=9E=8B=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/frpane/UICorrelationPane.java | 8 ++++---- .../main/java/com/fr/design/gui/itable/UITable.java | 13 +++++++++++++ .../java/com/fr/design/gui/itable/UITableUI.java | 1 + .../com/fr/design/present/dict/DictionaryPane.java | 4 ++-- .../design/mainframe/cell/CellElementEditPane.java | 5 +++-- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationPane.java index 68f1663ae4..469540c817 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/UICorrelationPane.java @@ -146,6 +146,7 @@ public class UICorrelationPane extends JPanel implements UIObserver { @Override public void actionPerformed(ActionEvent e) { tablePane.addBlankLine(); + tablePane.doParentRepaintEvent(); fireTargetChanged(); } }; @@ -154,13 +155,12 @@ public class UICorrelationPane extends JPanel implements UIObserver { protected void initLayout() { this.setLayout(new BorderLayout(0, scale(4))); Column tableContent = column( - cell(header), cell(tablePane).with(it -> - it.setBorder(BorderFactory.createMatteBorder(0, 1, 0, 1, + cell(header), cell(tablePane).weight(1).with(it -> + it.setBorder(BorderFactory.createMatteBorder(0, 1, 1, 1, FlatUIUtils.getUIColor("defaultBorderColor", Color.BLACK) ))) ).getComponent(); - this.add(tableContent, BorderLayout.CENTER); - this.add(addButton, BorderLayout.SOUTH); + this.add(column(4, cell(tableContent), cell(addButton)).getComponent()); } protected void initComponents() { diff --git a/designer-base/src/main/java/com/fr/design/gui/itable/UITable.java b/designer-base/src/main/java/com/fr/design/gui/itable/UITable.java index 17ec504d0e..5515736573 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itable/UITable.java +++ b/designer-base/src/main/java/com/fr/design/gui/itable/UITable.java @@ -18,6 +18,7 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import java.awt.AWTEvent; import java.awt.Component; +import java.awt.Container; import java.awt.Point; import java.awt.Rectangle; import java.awt.Toolkit; @@ -283,6 +284,18 @@ public class UITable extends JTable implements UIObserver { return new UIDefaultTableCellEditor(new UITextField()); } + /** + * repaint 所有父类,避免滚动条没有跟随 添加/删除 事件响应 + */ + public void doParentRepaintEvent() { + Container parent = this.getParent(); + while (parent != null) { + parent.revalidate(); + parent.repaint(); + parent = parent.getParent(); + } + } + @Override /** * diff --git a/designer-base/src/main/java/com/fr/design/gui/itable/UITableUI.java b/designer-base/src/main/java/com/fr/design/gui/itable/UITableUI.java index 9dd7edddf6..9248f3fb9d 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itable/UITableUI.java +++ b/designer-base/src/main/java/com/fr/design/gui/itable/UITableUI.java @@ -143,6 +143,7 @@ public class UITableUI extends BasicTableUI { ((UITable) table).removeLine(table.rowAtPoint(e.getPoint())); ((UITable) table).fireTargetChanged(); ((UITable) table).getParent().doLayout(); + ((UITable) table).doParentRepaintEvent(); return; } } diff --git a/designer-base/src/main/java/com/fr/design/present/dict/DictionaryPane.java b/designer-base/src/main/java/com/fr/design/present/dict/DictionaryPane.java index cfa9439d37..4de6c29491 100644 --- a/designer-base/src/main/java/com/fr/design/present/dict/DictionaryPane.java +++ b/designer-base/src/main/java/com/fr/design/present/dict/DictionaryPane.java @@ -37,8 +37,8 @@ public class DictionaryPane extends UIComboBoxPane implements DataCr cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Type_Set"), UILabel.LEFT)).weight(1), cell(jcb).weight(2) ), - cell(cardPane) - ).getComponent()); + cell(cardPane).weight(1) + ).weight(1).getComponent()); } @Override diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/CellElementEditPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/CellElementEditPane.java index bbf305d94f..00c2154cc0 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/CellElementEditPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/CellElementEditPane.java @@ -40,6 +40,7 @@ import static com.fine.swing.ui.layout.Layouts.cell; */ public class CellElementEditPane extends BasicPane { private static final int LEFT_BORDER = 10; + private static final int BOTTOM_BORDER = 10; private static final int RIGHT_BORDER = 10; private List paneList; private TemplateCellElement cellelement; @@ -77,8 +78,8 @@ public class CellElementEditPane extends BasicPane { this.setLayout(new BorderLayout()); this.add(Layouts.column( cell(tabsHeaderIconPane), - cell(center) - ).with(it -> it.setBorder(new ScaledEmptyBorder(0,LEFT_BORDER,0,RIGHT_BORDER))).getComponent()); + cell(center).weight(1) + ).with(it -> it.setBorder(new ScaledEmptyBorder(0,LEFT_BORDER, BOTTOM_BORDER, RIGHT_BORDER))).getComponent()); }