请问Java Swing菜单栏的JMenu menu怎么给他加上鼠标经过时出现圆角矩形边框,同时去掉原有的深灰色底色。

像这样的... 像这样的 展开
 我来答
wh猎人
2015-05-20 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:651万
展开全部
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();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式