请运行代码,代码是使用拖放方法在netbeans中开发的,请帮助我......我想要的是将电源按钮显示为opaic,而JDialog的其余部分显示为opaic。
import javax.swing.ImageIcon;
public class quicklaunchApp extends java.awt.Dialog {
int xMouse,yMouse;
public quicklaunchApp(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.setOpacity(0.3f);
this.Buttonpower.setOpaque(false);
}
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
Buttonpower = new javax.swing.JLabel();
Background = new javax.swing.JLabel();
setMaximumSize(new java.awt.Dimension(380, 140));
setMinimumSize(new java.awt.Dimension(380, 140));
setUndecorated(true);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
Buttonpower.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Button_default.png"))); // NOI18N
Buttonpower.setToolTipText("");
Buttonpower.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
ButtonpowerMouseClicked(evt);
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
ButtonpowerMouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
ButtonpowerMouseExited(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
ButtonpowerMousePressed(evt);
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
ButtonpowerMouseReleased(evt);
}
});
add(Buttonpower, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 40, -1, -1));
Background.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Background_default.png"))); // NOI18N
Background.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
BackgroundMouseDragged(evt);
}
});
Background.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
BackgroundMouseEntered(evt);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
BackgroundMouseExited(evt);
}
public void mousePressed(java.awt.event.MouseEvent evt) {
BackgroundMousePressed(evt);
}
});
add(Background, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 380, 140));
pack();
}// </editor-fold>
private void closeDialog(java.awt.event.WindowEvent evt) {
setVisible(false);
dispose();
}
private void BackgroundMouseDragged(java.awt.event.MouseEvent evt) {
int x = evt.getXOnScreen();
int y = evt.getYOnScreen();
this.setLocation(x-xMouse, y-yMouse);
}
private void BackgroundMousePressed(java.awt.event.MouseEvent evt) {
xMouse = evt.getX();
yMouse = evt.getY();
}
private void BackgroundMouseEntered(java.awt.event.MouseEvent evt) {
}
private void BackgroundMouseExited(java.awt.event.MouseEvent evt) {
}
private void ButtonpowerMouseEntered(java.awt.event.MouseEvent evt) {
ImageIcon II = new ImageIcon(getClass().getResource("Button_hover.png"));
Buttonpower.setIcon(II);
}
private void ButtonpowerMousePressed(java.awt.event.MouseEvent evt) {
ImageIcon II = new ImageIcon(getClass().getResource("Button_pressed.png"));
Buttonpower.setIcon(II);
}
private void ButtonpowerMouseClicked(java.awt.event.MouseEvent evt) {
}
private void ButtonpowerMouseReleased(java.awt.event.MouseEvent evt) {
ImageIcon II = new ImageIcon(getClass().getResource("Button_hover.png"));
Buttonpower.setIcon(II);
}
private void ButtonpowerMouseExited(java.awt.event.MouseEvent evt) {
ImageIcon II = new ImageIcon(getClass().getResource("Button_default.png"));
Buttonpower.setIcon(II);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
quicklaunchApp dialog = new quicklaunchApp(new java.awt.Frame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel Background;
private javax.swing.JLabel Buttonpower;
// End of variables declaration
}
将this.setOpacity(0.3f);
更改为this.setBackground(new Color(0, 0, 0, 0));
。 如果希望按钮不透明,请使用this.Buttonpower.setOpaque(true)
我还不鼓励您以这种方式使用JLabel
,而是使用JButton
,因为无论如何您基本上已经重新实现了基本功能。
像...
Buttonpower = new javax.swing.JButton("Stop this");
Buttonpower.setBorderPainted(false);
Buttonpower.setContentAreaFilled(false);
Buttonpower.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Button_default.png"))); // NOI18N
Buttonpower.setRolloverIcon(new ImageIcon(getClass().getResource("Button_hover.png")));
Buttonpower.setPressedIcon(new ImageIcon(getClass().getResource("Button_pressed.png")));
Buttonpower.setRolloverEnabled(true);