Browse Source

REPORT-127437 fix:setui 调整

newui
lemon 4 months ago
parent
commit
8013627bcc
  1. 19
      designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java
  2. 1
      designer-base/src/main/java/com/fr/design/gui/icontainer/UITableScrollPane.java
  3. 11
      designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIVerticalScrollBar.java

19
designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java

@ -1,9 +1,11 @@
package com.fine.theme.light.ui; package com.fine.theme.light.ui;
import com.formdev.flatlaf.ui.FlatScrollBarUI; import com.formdev.flatlaf.ui.FlatScrollBarUI;
import com.fr.design.gui.iscrollbar.UIVerticalScrollBar;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.plaf.ComponentUI;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Rectangle; import java.awt.Rectangle;
@ -16,12 +18,20 @@ import java.awt.Rectangle;
*/ */
public class FineTableScrollBarPaneUI extends FlatScrollBarUI { public class FineTableScrollBarPaneUI extends FlatScrollBarUI {
private final JTable table; public FineTableScrollBarPaneUI() {
}
public FineTableScrollBarPaneUI(JTable table) { /**
this.table = table; * 创建UI
*
* @param c 组件
* @return ComponentUI
*/
public static ComponentUI createUI(JComponent c) {
return new FineTableScrollBarPaneUI();
} }
@Override @Override
protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
super.paintTrack(g, c, trackBounds); super.paintTrack(g, c, trackBounds);
@ -29,10 +39,13 @@ public class FineTableScrollBarPaneUI extends FlatScrollBarUI {
@Override @Override
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
if (c instanceof UIVerticalScrollBar) {
// 确保滚动条滑块不会超过表头区域 // 确保滚动条滑块不会超过表头区域
JTable table = ((UIVerticalScrollBar) c).getTable();
Rectangle headerRect = table.getTableHeader().getBounds(); Rectangle headerRect = table.getTableHeader().getBounds();
int headerHeight = headerRect.height; int headerHeight = headerRect.height;
thumbBounds.y = Math.max(thumbBounds.y, headerHeight); thumbBounds.y = Math.max(thumbBounds.y, headerHeight);
}
super.paintThumb(g, c, thumbBounds); super.paintThumb(g, c, thumbBounds);
} }

1
designer-base/src/main/java/com/fr/design/gui/icontainer/UITableScrollPane.java

@ -1,7 +1,6 @@
package com.fr.design.gui.icontainer; package com.fr.design.gui.icontainer;
import com.fr.design.gui.iscrollbar.UIVerticalScrollBar; import com.fr.design.gui.iscrollbar.UIVerticalScrollBar;
import com.fr.design.gui.itable.FineUITable;
import javax.swing.JScrollBar; import javax.swing.JScrollBar;
import javax.swing.JTable; import javax.swing.JTable;

11
designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIVerticalScrollBar.java

@ -1,7 +1,5 @@
package com.fr.design.gui.iscrollbar; package com.fr.design.gui.iscrollbar;
import com.fine.theme.light.ui.FineTableScrollBarPaneUI;
import javax.swing.JTable; import javax.swing.JTable;
/** /**
@ -15,16 +13,19 @@ public class UIVerticalScrollBar extends UIScrollBar {
private static final String UI_CLASS_ID = "TableVerticalBarUI"; private static final String UI_CLASS_ID = "TableVerticalBarUI";
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public UIVerticalScrollBar() { public JTable table;
}
public UIVerticalScrollBar(JTable table, int orientation) { public UIVerticalScrollBar(JTable table, int orientation) {
super(orientation); super(orientation);
this.setUI(new FineTableScrollBarPaneUI(table)); this.table = table;
} }
public String getUIClassID() { public String getUIClassID() {
return UI_CLASS_ID; return UI_CLASS_ID;
} }
public JTable getTable() {
return this.table;
}
} }

Loading…
Cancel
Save