Leo.Qin
9 months ago
9 changed files with 95 additions and 59 deletions
@ -0,0 +1,19 @@ |
|||||||
|
package com.fine.theme.light.ui; |
||||||
|
|
||||||
|
import com.fine.theme.utils.FineUIUtils; |
||||||
|
import com.formdev.flatlaf.ui.FlatPopupMenuBorder; |
||||||
|
|
||||||
|
/** |
||||||
|
* PopupMenu Border类 |
||||||
|
* |
||||||
|
* @author Leo.Qin |
||||||
|
* @since 11.0 |
||||||
|
* Created on 2023/12/25 |
||||||
|
*/ |
||||||
|
public class FinePopupMenuBorder extends FlatPopupMenuBorder { |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getArc() { |
||||||
|
return FineUIUtils.getAndScaleInt("PopupMenu.arc", 5); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,57 @@ |
|||||||
|
package com.fine.theme.light.ui; |
||||||
|
|
||||||
|
import com.fine.theme.utils.FineUIUtils; |
||||||
|
import com.formdev.flatlaf.ui.FlatPopupMenuUI; |
||||||
|
|
||||||
|
import javax.swing.JComponent; |
||||||
|
import javax.swing.plaf.ComponentUI; |
||||||
|
import java.awt.Graphics; |
||||||
|
import java.awt.Graphics2D; |
||||||
|
import java.awt.RenderingHints; |
||||||
|
import java.awt.geom.RoundRectangle2D; |
||||||
|
|
||||||
|
/** |
||||||
|
* PopupMenu UI类 |
||||||
|
* |
||||||
|
* @author Leo.Qin |
||||||
|
* @since 11.0 |
||||||
|
* Created on 2023/12/25 |
||||||
|
*/ |
||||||
|
public class FinePopupMenuUI extends FlatPopupMenuUI { |
||||||
|
private int arc; |
||||||
|
private final int DEFAULT_ARC = 5; |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建UI |
||||||
|
* |
||||||
|
* @param c 组件 |
||||||
|
* @return UI |
||||||
|
*/ |
||||||
|
public static ComponentUI createUI(JComponent c) { |
||||||
|
return new FinePopupMenuUI(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void installDefaults() { |
||||||
|
super.installDefaults(); |
||||||
|
arc = FineUIUtils.getAndScaleInt("PopupMenu.arc", DEFAULT_ARC); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void paint(Graphics g, JComponent c) { |
||||||
|
// 绘制圆角矩形作为弹窗背景
|
||||||
|
Graphics2D g2d = (Graphics2D) g; |
||||||
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); |
||||||
|
RoundRectangle2D roundRect = new RoundRectangle2D.Double(0, 0, c.getWidth(), c.getHeight(), arc, arc); |
||||||
|
g2d.setColor(c.getBackground()); |
||||||
|
g2d.fill(roundRect); |
||||||
|
|
||||||
|
// 绘制组件内容
|
||||||
|
super.paint(g, c); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void update(Graphics g, JComponent c) { |
||||||
|
paint(g, c); |
||||||
|
} |
||||||
|
} |
@ -1,28 +1,11 @@ |
|||||||
package com.fr.design.gui.imenu; |
package com.fr.design.gui.imenu; |
||||||
|
|
||||||
import java.awt.Graphics; |
|
||||||
import java.awt.Insets; |
|
||||||
|
|
||||||
import javax.swing.JPopupMenu; |
import javax.swing.JPopupMenu; |
||||||
|
|
||||||
import com.fr.design.constants.UIConstants; |
|
||||||
|
|
||||||
public class UIPopupEastAttrMenu extends JPopupMenu { |
public class UIPopupEastAttrMenu extends JPopupMenu { |
||||||
|
|
||||||
public UIPopupEastAttrMenu() { |
public UIPopupEastAttrMenu() { |
||||||
super(); |
super(); |
||||||
setBackground(UIConstants.NORMAL_BACKGROUND); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
protected void paintBorder(Graphics g) { |
|
||||||
g.setColor(UIConstants.POP_DIALOG_BORDER); |
|
||||||
g.drawRect(0, 0, getWidth() - 1, getHeight() - 1); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Insets getInsets() { |
|
||||||
return new Insets(0, 1, 1, 1); |
|
||||||
} |
} |
||||||
|
|
||||||
} |
} |
Loading…
Reference in new issue