这里我创建了一个看起来像3d按钮的图像,我想在我的应用程序中将它用作java swing中的按钮。
我尝试了以下代码:
ImageIcon water = new ImageIcon("button.jpeg");
exceptionButton = new JButton(water);
我把它作为图像,但它的特色就像按钮的边框,所以我使用了以下代码:
exceptionButton.setBorder(BorderFactory.createEmptyBorder());
exceptionButton.setContentAreaFilled(false);
exceptionButton.setFocusPainted(false);
exceptionButton.setOpaque(false);
但它没有帮助。我希望实际图像充当按钮。图像有圆角但现在图像进入按钮并失去圆角的实际效果。另外,当用户将鼠标悬停在它上面时,我希望它集中注意力。由于我使用上面的代码放置了按钮图像,因此当用户点击它时,我没有获得按下按钮的效果。
我应该如何更改我的代码?
答案 0 :(得分:1)
图像有圆角但现在图像进入按钮并失去圆角的实际效果。
不要使用EmptyBorder,它总是Rectangular。另请尝试使用setBorderPainted(false)
。
此外,我希望在用户将鼠标悬停在其上时将其集中。因为我已经为上面的代码添加了按钮图像
然后您还需要提供翻转图标。见setRolloverIcon(...)
答案 1 :(得分:0)
使用jlabel而不是jbutton
jLabel5 = new javax.swing.JLabel();
jLabel5.setIcon(new javax.swing.ImageIcon(youriconpath));
jLabel5.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel5MouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
jLabel5MouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
jLabel5MouseExited(evt);
}
});
private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
// write your code
}
private void jLabel5MouseEntered(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
//change your jlabel icon
jLabel5.setIcon(new ImageIcon("yourNewIconpath"));
}
private void jLabel5MouseExited(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
//resete your icon
}