Visualizzazione dei risultati da 1 a 2 su 2

Discussione: JToolBar Background

  1. #1
    Utente di HTML.it L'avatar di Cr4ckz!
    Registrato dal
    Aug 2003
    Messaggi
    163

    JToolBar Background

    Salve a tutti,
    sto per la prima volta giocherellando con Swing per capire un po come funziona e, ora come ora, sto provando a settare un'immagine di sfondo ad una mia JToolBar.
    Per fare questo ho creato una mia classe JToolBarBg che estende JToolBar e ho riscirtto il metodo paintComponent.
    Quando mando in esecuzione il programma sembra che lo sfondo me lo disegni ma si vede appena appena...in pratica si vede un contorno nero in basso e a destra della toolbar (lo sfondo è un'immagine nero sfocato)...come se la mettesse "sotto" alla toolbar e non "dentro".
    Per spiegarmi meglio vi posto un'immagine del risultato e il codice:



    Classe UI (segnato in grassetto la parte riguardante la toolbar):

    codice:
    import org.jdesktop.layout.*;
    import javax.swing.*;
    import java.awt.*;
    
    public class UI extends JFrame{
    
        UI(){
            initComponents();
        }
    
        private void initComponents(){
            setTitle("Titolo della form");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setVisible(true);
            
    
            //ToolBar
            ImageIcon bg = new ImageIcon("toolbar_bg.jpg");
            JToolBarBg bar = new JToolBarBg("My Toolbar", bg);
            getContentPane().add(bar, BorderLayout.NORTH);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            bar.setRollover(true);
            bar.setFloatable(false);
            
            //Pulsanti ToolBar
            JButton bar1 = new JButton();
            bar1.setText("jButton1");
            bar1.setFocusable(false);
            bar1.setHorizontalTextPosition(SwingConstants.CENTER);
            bar1.setVerticalTextPosition(SwingConstants.BOTTOM);
            bar.add(bar1);
    
            JButton bar2 = new JButton();
            bar2.setText("jButton2");
            bar2.setFocusable(false);
            bar2.setHorizontalTextPosition(SwingConstants.CENTER);
            bar2.setVerticalTextPosition(SwingConstants.BOTTOM);
            bar.add(bar2);
    
            JButton bar3 = new JButton();
            bar3.setText("jButton2");
            bar3.setFocusable(false);
            bar3.setHorizontalTextPosition(SwingConstants.CENTER);
            bar3.setVerticalTextPosition(SwingConstants.BOTTOM);
            bar.add(bar3);
    
            //Layout generale
            GroupLayout layout = new GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(GroupLayout.LEADING)
                .add(bar,GroupLayout.DEFAULT_SIZE, 750, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .add(bar,GroupLayout.PREFERRED_SIZE, 36,GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(438, Short.MAX_VALUE))
            );
    
            pack();
        }
    
    
    }
    Classe JToolBarBg:

    codice:
    package provapanel;
    
    public class JToolBarBg extends javax.swing.JToolBar{
        
        private javax.swing.ImageIcon bgImage;
    
        JToolBarBg(String name, javax.swing.ImageIcon bg) {
            super(name);
            this.bgImage = bg;
            setOpaque(true);
        }
    
        public void paintComponent(java.awt.Graphics g) {
             super.paintComponent(g);
             if (bgImage != null) {
                java.awt.Dimension size = this.getSize();
                g.drawImage(bgImage.getImage(), 0,0, size.width, size.height, this);
             }
          }
    
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Il codice di JToolBarBg mi sembra corretto e dovrebbe appunto funzionare. Non ho provato il tuo codice comunque.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.