请教Swing关于焦点显示效果的问题。

Hacker2002 2008-04-08 01:45:05
各位达人:
您好!目前我用swing做界面,当按钮选中焦点的时候,焦点的显示非常不明显。目前我用的方法是在CSDN上的方法:
自己写一个:MyButtonUI
package ui;

import javax.swing.AbstractButton;
import javax.swing.UIManager;
import javax.swing.plaf.metal.MetalButtonUI;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;

public class MyButtonUI extends MetalButtonUI{

int rectGapX;
int rectGapY;
int rectGapW;
int rectGapH;

public MyButtonUI() {
rectGapX = UIManager.getInt( "ButtonUI.dashedRectGapX ");
rectGapY = UIManager.getInt( "ButtonUI.dashedRectGapY ");
rectGapW = UIManager.getInt( "ButtonUI.dashedRectGapWidth ");
rectGapH = UIManager.getInt( "ButtonUI.dashedRectGapHeight ");
}

protected void paintFocus(Graphics g, AbstractButton b, Rectangle viewRect,
Rectangle textRect, Rectangle iconRect) {

textRect = new Rectangle(rectGapX+3, rectGapY+3, b.getWidth()-rectGapW-6,
b.getHeight()-rectGapH-6);
super.paintFocus(g, b, viewRect, textRect, iconRect);
}
}
然后:
JButton button = new JButton( "test Button ");
MyButtonUI bui = new MyButtonUI();
button.setUI(bui);

这样的方法,可以将:焦点的边框 和 按钮的边框的距离近一些!
但小弟请教:
1,是否可以将 焦点的边框 加粗
2,是否可以将 焦点的边框 变色
反正:目的只有一个,就是将焦点搞得醒目一些,让用户能够一眼看清楚~!!
大人们看是否能在上面的 MyButtonUI 上改写,或者 用其他方法来 设置button的属性!
谢谢了!
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
momo1985 2008-04-08
  • 打赏
  • 举报
回复
没变过边框不知道,但是背景是可以设置的,你稍微摸索一下吧
Hacker2002 2008-04-08
  • 打赏
  • 举报
回复
自身按钮的哪个属性?
我要使 获得焦点的时候,焦点边框变粗 或者 焦点边框变色
momo1985 2008-04-08
  • 打赏
  • 举报
回复
当然是用按钮的自身属性啦
Hacker2002 2008-04-08
  • 打赏
  • 举报
回复
可以将焦点的边框 变色 ,是否 加粗没做过。
你选中焦点public void mouseMoved(MouseEvent e) {}

这个动作加上去后!
如何设置焦点?
是用button的属性设置
还是什么?
momo1985 2008-04-08
  • 打赏
  • 举报
回复
楼上说的对 自己写鼠标事件
或者用SYNTH自定义风格也可以啦
fayeyiwang 2008-04-08
  • 打赏
  • 举报
回复
可以将焦点的边框 变色 ,是否 加粗没做过。
你选中焦点public void mouseMoved(MouseEvent e) {}
有个setColor()方法改变颜色的。具体的写法要看你按项目了。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧