展开全部
myMenu.setBackground(Color.white);// 设置背景色
myMenu.setBorder(myRoundBorder); // 设置一个边框
给菜单项添加鼠标侦听,当mouse enter和exit时重新设置背景和边框。
圆角边框需要自己实现一个,不难,给你个参考:
class MyRoundBorder implements Border {
int arc=12;
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.drawRoundRect(x + 1, y + 1, width - 1, height - 1, arc, arc);
}
@Override
public Insets getBorderInsets(Component c) {
return null;
}
@Override
public boolean isBorderOpaque() {
return false;
}
}
更多追问追答
追问
请问创建好了这个MyRoundBorder之后,怎么不能调用它。非得final一个静态的值为null才不会报错。但是这样做了没有一点效果。创建了鼠标监听,依然不能调用这个MyRoundBorder,而鼠标监听中menu1.setBorder(MyRoundBorder);MyRoundBorder出现红色波浪线
追答
在class MyRoundBorder 前面加上static 关键字,将其变为静态类。
MyRoundBorder是正常的,这是个类,你需要实例化,在机子的panel中new一个:
MyRoundBorder myRoundBorder=new MyRoundBorder();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询