【问题标题】:How coud I create these kind of Button using Java Swing?如何使用 Java Swing 创建这种 Button?
【发布时间】:2017-09-14 05:22:11
【问题描述】:

我想创建没有任何bordersshadow的按钮,而是使用java swing组件创建一个图标。我怎样才能做到这一点?

【问题讨论】:

标签: java swing button icons


【解决方案1】:

真实按钮

JButton btnNewButton = new JButton("");
btnNewButton.setContentAreaFilled(false);
btnNewButton.setBorderPainted(false);
btnNewButton.setBorder(null);
btnNewButton.setIcon(new ImageIcon(path));

这将为您提供一个真正的按钮,在给定的图像周围没有任何边框可以使用。请注意,在此状态下,按钮不再具有“点击动画”。对于这样的动画,您可以使用.setSelectedIcon(selectedIcon);

可点击图片

ImageIcon img = new ImageIcon(path);
JLabel button = new JLabel(img);
button.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
        //Set pressed or something else
    }
});

但是这个只是为你提供了一个可点击的图片,并且应该只在需要一个没有任何其他意图的可点击图片时使用。 请注意,这种方式只是一种解决方法。

【讨论】:

  • 第一种方式是+1,第二种方式是-1。
  • @Marvin:如果没有ButtonModelButtonUI 等,用户怎么会猜到它是一个按钮?
  • @Marvin 按钮的功能远不止鼠标交互——您可以提供Actions,它提供键盘快捷键和可重复使用的功能
  • @CatalinaIsland 用户将看不到第一个和第二个之间的任何区别。在这种状态下,它们看起来完全一样,但第一个示例有一些无法使用 .setBorder.setBorderPainted 删除的寄宿生
  • 扩展@CatalinaIsland 的评论,一个按钮被设计为可聚焦的,它可以使用键盘激活,它支持显示不同的图标,用于按下、聚焦等。它支持一个动作监听器并且可以从action 构造,它也可以用于工具栏或菜单。如果该操作被禁用,则相关控件也被禁用,显示为“灰色”(包括任何图标)。如果程序需要一个可操作按钮,则有很多原因,JButton 更好。
猜你喜欢
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
相关资源
最近更新 更多