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()); }