我创造了JToolBar
(Java 摇摆)。我在框架上设置了一个背景图像,其中包含JToolBar
。我想要我的JToolBar
是透明的,以便保持在框架上的图像应该是可见的。我在用setOpaque(false)
但它对我的工具栏没有任何影响。以前有人处理过这个问题吗?我的代码如下
import javax.swing.ImageIcon;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class NewJFrame extends javax.swing.JFrame {
static NewJFrame dialog = null;
/** Creates new form NewJFrame */
public NewJFrame() {
initComponents();
jToolBar1.setOpaque(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jToolBar1 = new javax.swing.JToolBar();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jToolBar1.setRollover(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(275, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
try {
// Set cross-platform Java L&F (also called "Metal")
UIManager.setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
ImagePanel panel = new ImagePanel(new ImageIcon("image").getImage());
dialog = new NewJFrame();
dialog.getContentPane().add(panel);
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JToolBar jToolBar1;
// End of variables declaration
}
JToolBar 创建 JButtons 来包含您在其上设置的操作。默认情况下,JButton 是不透明的。要获得您所描述的效果,您需要重写 JToolBar.createActionComponent。
例如:
jToolBar1 = new javax.swing.JToolBar() {
@Override
protected JButton createActionComponent(Action a) {
JButton jb = super.createActionComponent(a);
jb.setOpaque(false);
return jb;
}
};
Note:YMMV 取决于所使用的 LAF。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)