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

    [JAVA] Scritta scorrevole su striscia colorata

    Salve, sto cercando di scrivere un applet od una applicazione che mostri in una finestra una scritta scorrevole da destra a sinistra su una striscia colorata cha attraversa orizzontalmente lo schermo.
    Sino ad ora sono riuscita a fare una stringa scorrevole, ma non riesco ad aggiungerci la striscia colorata sottostante...

    Questo è quanto ho fatto sino ad ora:
    codice:
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import MGui.*;
    
    public class SimpleClass extends JFrame implements ActionListener {
        private JLabel label;
        private JPanel pannello;
        private Timer timer;
        
        private static String stringa = "Sono una stringa che scorre. ";
        private static int numChar = 25;
        private int indice = 0;
        
        
        public void mpaint ( Graphics2D g2 ){
            
            
            Rectangle2D.Double r = new Rectangle2D.Double(50, 80, 350, 50); 
            GraphSet.setColor( g2, 0, 0, 255);  // imposta il colore corrente al blu
            g2.fill(r); 
        }
        
        public SimpleClass() {
            label = new JLabel(getText());
            pannello = new JPanel();
            pannello.add(label);
            this.setContentPane(pannello);
            this.setSize(200,200);
            this.setVisible(true);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            timer = new Timer(200, this);
            timer.start();
        }
        
        public void actionPerformed(ActionEvent e) {
            label.setText(getText());
        }
        
        public String getText() {
            int fine = indice + numChar;
            String tmp;
            if(fine<stringa.length()) {
                tmp = stringa.substring(indice, fine);
            } else {
                tmp = stringa.substring(indice);
                tmp = tmp + stringa.substring(0, fine%stringa.length());
            }
            indice = (indice+1)%(stringa.length());
            //System.out.println(indice+" "+stringa.length());
            return tmp;
        }
        
        public static void main(String[] args) {
            new SimpleClass();
        }
    }
    Sapete aiutarmi a creare la striscia?
    Vi ringrazio

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] Scritta scorrevole su striscia colorata

    Originariamente inviato da sara.1989
    Questo è quanto ho fatto sino ad ora:
    Sapete aiutarmi a creare la striscia?
    Uhm ... un'altra volta 'sto MGui, mpaint() bla bla (l'ho già visto in un'altra discussione di qualche giorno fa ...).

    Comunque se estendi JFrame, quel mpaint() non centra nulla .... se invece vuoi usare qualcosa di questo package MGui, beh, probabilmente devi estendere una sua classe invece di JFrame.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie per la risposta.
    Non mi interessa necessariamente usare il package MGui, anche perchè non lo so gestire bene e finora mi ha creato solo difficoltà.

    Ciò che mi basta è realizzare la striscia colorata sottostante alla scritta scorrevole, cosa che non so proprio come fare.
    Sapete aiutarmi?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sara.1989
    Non mi interessa necessariamente usare il package MGui, anche perchè non lo so gestire bene e finora mi ha creato solo difficoltà.
    Lo ripeto ancora una volta: hai esteso JFrame (è Swing) e hai definito un metodo mpaint() (ha a che fare con quel package MGui di cui non hai usato/esteso alcunché). Quindi quel mpaint() non centra nulla con JFrame, non viene usato, non viene invocato.

    Tu vuoi che il testo abbia uno sfondo colorato. Ma il testo lo visualizza un JLabel. La cosa più semplice che potresti fare è settare un colore di sfondo al JLabel (devi anche rendere "opaca" la label!!).

    Semplicemente:
    codice:
    label.setOpaque(true);
    label.setBackground(Color.BLUE);
    Non ti va bene? Ok allora si può fare ma devi cambiare approccio. Perché disegnare direttamente su un JFrame non è la soluzione giusta.
    Potresti creare una "tua" label estendendo JLabel e fare l'override di paintComponent(). Prima disegni il tuo rettangolo e poi invochi super.paintComponent(g) ovviamente.

    Altrimenti potresti estendere JPanel, dentro ci aggiungi la tua label, e fai l'override di paintComponent() nel tuo pannello.

    La cosa che devi comunque avere chiara è che disegnare direttamente su un JFrame non va bene.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Grazie mille, ho seguito il consiglio di settare un colore di sfondo al JLabel e sono riuscita a fare quanto volevo.

    Grazie!

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.