Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    cambiare look ai jpanel

    Ciao, sto implementando un gioco in java e mi servirebbero dei jpanel però rotondi, allora ho provato creare una sottoclasse di jpanel e a cambiargli UI ma non sono ancora riuscito ad ottenere dei risultati.. posto il codice che ho scritto fin'ora:

    (mi spiace ma non riesco a far mantere il codice oridnato)
    import javax.swing.JPanel;
    import javax.swing.plaf.PanelUI;
    import javax.swing.RepaintManager;
    import java.awt.Color;
    import javax.swing.DebugGraphics;
    import java.awt.Dimension;

    public class CirclePanel extends JPanel
    {

    public CirclePanel()
    {
    setPreferredSize(new Dimension(30, 30));
    JPanel panel = new JPanel();
    RepaintManager repaintManager = RepaintManager.currentManager(panel);
    repaintManager.setDoubleBufferingEnabled(false);
    DebugGraphics dGraphic = new DebugGraphics();
    dGraphic.setColor(Color.white);
    dGraphic.fillOval(0, 0, 25, 25);
    PanelUI ui = panel.getUI();
    ui.update(dGraphic, panel);
    setUI(ui);
    setVisible(true);
    }
    }
    in fase di compilazione non ho nessun errore, poi se lo mando in run mi si apre la form(composta da un jframe ed un jpanel a cui aggiungo l'oggetto CirclePanel) ma non si visualizza nulla

    e nella shell compare il messaggio di eccezzione:

    Exception in thread "main" java.lang.NullPointerException
    at javax.swing.DebugGraphics.setColor(DebugGraphics.j ava:200)
    at CirclePanel.<init>(CirclePanel.java:19)
    at MasterMind.main(MasterMind.java:36)

    Qualche consiglio utile? è la prima volta che lavoro con l'UI di un componente e sono un pò spaesato.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,474

    Moderazione (suggerimento)

    Originariamente inviato da sad127
    (mi spiace ma non riesco a far mantere il codice oridnato)
    Usa il pulsante # per inserire codice e mantenere l'identazione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ok, grazie mille alka.

    ri-posto qui.

    codice:
    import javax.swing.JPanel;
    import javax.swing.plaf.PanelUI;
    import javax.swing.RepaintManager;
    import java.awt.Color;
    import javax.swing.DebugGraphics;
    import java.awt.Dimension;
    
      public class CirclePanel extends JPanel
     {
    
              public CirclePanel()
             {
                             setPreferredSize(new Dimension(30, 30));
                             JPanel panel = new JPanel();
                             RepaintManager repaintManager = RepaintManager.currentManager(panel);
                             repaintManager.setDoubleBufferingEnabled(false);
                             DebugGraphics dGraphic = new DebugGraphics();
                             dGraphic.setColor(Color.white);
                             dGraphic.fillOval(0, 0, 25, 25);
                             PanelUI ui = panel.getUI();
                             ui.update(dGraphic, panel);
                             setUI(ui);
                             setVisible(true);
             }
      }

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.