[Swing]إنشاء قائمة JPopupMenu شفافة
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
[Swing]إنشاء قائمة JPopupMenu شفافة
كود جميل لانشاء قائمة شفافة
النتيجة :
![[Swing]إنشاء قائمة JPopupMenu شفافة TranslucentPopupMenu](https://3.bp.blogspot.com/-h1IgxnzsDNI/T_QagzK9PqI/AAAAAAAABPE/9DpvililYOA/s400/TranslucentPopupMenu.png)
- الكود:
class TranslucentPopupMenu extends JPopupMenu {
private static final Color ALPHA_ZERO = new Color(0x0, true);
private static final Color POPUP_BACK = new Color(250, 250, 250, 200);
private static final Color POPUP_LEFT = new Color(230, 230, 230, 200);
private static final int LEFT_WIDTH = 24;
@Override public boolean isOpaque() {
return false;
}
@Override public void updateUI() {
super.updateUI();
if (Objects.isNull(UIManager.getBorder("PopupMenu.border"))) {
setBorder(new BorderUIResource(BorderFactory.createLineBorder(Color.GRAY)));
}
}
@Override public Component add(Component c) {
if (c instanceof JComponent) {
((JComponent) c).setOpaque(false);
}
return c;
}
@Override public JMenuItem add(JMenuItem menuItem) {
menuItem.setOpaque(false);
// menuItem.setBackground(ALPHA_ZERO);
return super.add(menuItem);
}
@Override public void show(Component c, int x, int y) {
EventQueue.invokeLater(() -> {
Container p = getTopLevelAncestor();
if (p instanceof JWindow) {
System.out.println("Heavy weight");
JWindow w = (JWindow) p;
// if (System.getProperty("java.version").startsWith("1.6.0")) {
// w.dispose();
// if (AWTUtilities.isWindowOpaque(w)) {
// AWTUtilities.setWindowOpaque(w, false);
// }
// w.setVisible(true);
// }
w.setBackground(ALPHA_ZERO);
} else {
System.out.println("Light weight");
}
});
super.show(c, x, y);
}
@Override protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setPaint(POPUP_LEFT);
g2.fillRect(0, 0, LEFT_WIDTH, getHeight());
g2.setPaint(POPUP_BACK);
g2.fillRect(LEFT_WIDTH, 0, getWidth(), getHeight());
g2.dispose();
// super.paintComponent(g);
}
}
النتيجة :
![[Swing]إنشاء قائمة JPopupMenu شفافة TranslucentPopupMenu](https://3.bp.blogspot.com/-h1IgxnzsDNI/T_QagzK9PqI/AAAAAAAABPE/9DpvililYOA/s400/TranslucentPopupMenu.png)
السنى- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 465
التقيم : 26
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» تصميم تطبيق جوال لمغسلة ملابس
» تصميم تطبيق جوال لشركة عقارات
» شركة مكافحة النمل الابيض بالرياض
» تصميم تطبيق جوال لنقل الاثاث
» هناجر
» تصميم تطبيق جوال لمتجر ورد
» تصميم تطبيق جوال لسلسلة مطاعم
» تصميم تطبيق جوال لتوصيل الطلبات
» مظلات سيارات متحركة