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

    [JAVA] Disegnare bordo di un JPanel

    Buongiorno,

    vorrei che un oggetto della classe JPanel avesse il bordo bianco tranne che per quello inferiore che vorrei fosse nero.

    Non so spiegarmi meglio...

    Sto vedendo i metodi LineBorder.getInteriorRectangle, ma non riesco a trovare una soluzione

    Vorrei che la mia label, contenente un testo qualsiasi (mettiamo "CIAO MONDO") apparisse così


    CIAO MONDO
    ___________

    cioè col solo bordo inferiore colorato di nero...

    Si può fare?

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

    Re: [JAVA] Disegnare bordo di un JPanel

    Originariamente inviato da ragnonerodocet
    vorrei che un oggetto della classe JPanel avesse il bordo bianco tranne che per quello inferiore che vorrei fosse nero.

    Vorrei che la mia label, contenente un testo qualsiasi (mettiamo "CIAO MONDO") apparisse così


    CIAO MONDO
    ___________

    cioè col solo bordo inferiore colorato di nero...
    Ma gli altri 3 bordi vuoi che siano proprio di colore Color.WHITE o più semplicemente ... non esistenti??

    Comunque non c'è una implementazione di Border predefinita nel framework per cui puoi specificare spessore+colore per ogni singolo bordo. Le soluzioni sono 2: o implementi un "tuo" border (estendi AbstractBorder e implementi quello che serve ... non è difficile) oppure componi più bordi insieme usando un CompoundBorder (o BorderFactory.createCompoundBorder)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ho risolto così:

    Border border = BorderFactory.createMatteBorder(0, 0, 1, 0, Color.BLACK);
    In questo modo creo bordi con spessore nullo...

    Allora, senza aprire altri topic, vorrei sapere come posso, sempre in un oggetto JPanel, iniziare ascrivere da una posizione decisa da me: ne al centro, ne da destra ne da sinistra: devo utilizzare il cursore?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ragnonerodocet
    Ho risolto così:

    In questo modo creo bordi con spessore nullo...
    Ah ok .... non erano "bianchi" ... semplicemente non esistenti!

    Originariamente inviato da ragnonerodocet
    Allora, senza aprire altri topic, vorrei sapere come posso, sempre in un oggetto JPanel, iniziare ascrivere da una posizione decisa da me: ne al centro, ne da destra ne da sinistra: devo utilizzare il cursore?
    In che senso "a scrivere" ??? Un JPanel generalmente lo si usa in 2 modi: a) Si estende per fare l'override di paintComponent() e poterci "disegnare" sopra oppure b) Per contenere altri componenti.

    Quindi??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ho risolto anche questo problema.

    Ora un ultimo e ho chiuso...

    Anche se è OT lo metto qui...

    Ho creato una JTable con 4 colonne e 10 righe in tutto.

    Vorrei poter editare il font di tutta la colonna.


    Esiste un metodo apposito?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ragnonerodocet
    Vorrei poter editare il font di tutta la colonna.

    Esiste un metodo apposito?
    Qui centrano i "renderer" .... non è questione di 1 metodo ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Esatto, sto vedendo anche io...

    Ma non so come possa fare...



    ma mi tira fuori delle nullPointerException...
    Ho provato anche con JTable.getComponentAt(x, y).getForeground(Color.GREEN);

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da ragnonerodocet
    ma mi tira fuori delle nullPointerException...
    Ho provato anche con JTable.getComponentAt(x, y).getForeground(Color.GREEN);
    Non ha alcun senso ...... getComponentAt: Locates the component that contains the x,y position. Ma JTable NON contiene "componenti" nel senso come un comune contenitore come es. JPanel.

    E quasi sicuramente non ti è chiaro come funziona un "renderer". E comunque se vuoi cambiare il font delle celle, sappi che l'altezza delle celle non dipende dal renderer ma da una impostazione generale su JTable.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Direi, comunque, che siamo andati ben oltre l'OT in questa discussione... se vuoi puoi aprire una discussione dedicata alle JTable e all'uso dei renderer, ma non continuiamo qui, che diventa tutto un miscuglio.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.