【发布时间】:2017-09-14 05:22:11
【问题描述】:
我想创建没有任何borders或shadow的按钮,而是使用java swing组件创建一个图标。我怎样才能做到这一点?
【问题讨论】:
-
JButton#setBorderPainted可能还有JButton#setContentAreaFilled
我想创建没有任何borders或shadow的按钮,而是使用java swing组件创建一个图标。我怎样才能做到这一点?
【问题讨论】:
JButton#setBorderPainted 可能还有JButton#setContentAreaFilled
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
}
});
但是这个只是为你提供了一个可点击的图片,并且应该只在需要一个没有任何其他意图的可点击图片时使用。 请注意,这种方式只是一种解决方法。
【讨论】:
ButtonModel、ButtonUI 等,用户怎么会猜到它是一个按钮?
Actions,它提供键盘快捷键和可重复使用的功能
.setBorder 或 .setBorderPainted 删除的寄宿生
JButton 更好。