Visualizzazione dei risultati da 1 a 10 su 21

Hybrid View

  1. #1
    Da quanto ho appena letto tra le API di Java, dovrebbe dipendere dal setViewportView, che dev'essere indicato in termini di X e Y, sennò il contenuto viene posizionato di default in alto a sinistra (X=0, Y=0).
    Nel mio caso il codice interessato, credo sia questo:
    codice:
    OutputArea.setEditable(false);
            OutputArea.setColumns(20);
            OutputArea.setFont(new java.awt.Font("Monospaced", 0, 12));
            OutputArea.setRows(5);
            OutputArea.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
            jScrollPane1.setViewportView(OutputArea);
    dove jScrollPane1 è il necessario "contenitore" della JTextArea OutputArea.
    Solo che non so come passare i parametri di posizione della JTextArea...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    codice:
    OutputArea.setEditable(false);
            OutputArea.setColumns(20);
            OutputArea.setFont(new java.awt.Font("Monospaced", 0, 12));
            OutputArea.setRows(5);
            OutputArea.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
            jScrollPane1.setViewportView(OutputArea);
    dove jScrollPane1 è il necessario "contenitore" della JTextArea OutputArea.
    No, non è questo il punto problematico. Quello che hai scritto qui è tutto tecnicamente corretto (salvo il fatto che per il 2° parametro di Font() sarebbe meglio usare i nomi di costanti in Font come Font.PLAIN che è appunto 0).

    setViewportView imposta solo il componente da scrollare, quello che appunto è inteso come "view".

    Fare:

    jscrollPane = new JScrollPane(componenteDaScrollare);

    oppure

    jscrollPane = new JScrollPane();
    jscrollPane.setViewportView(componenteDaScrollare);


    è la STESSA cosa e sono entrambi modi corretti.

    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Solo che non so come passare i parametri di posizione della JTextArea...
    Sul componente da scrollare, NON c'è nulla da impostare riguardo posizione/dimensione. Ci pensa JScrollPane (per essere più precisi il JViewport interno a JScrollPane) a disporre appropriatamente il componenteDaScrollare.


    E alla fine ..... siamo (almeno per me che leggo) allo stesso punto di prima.
    Ultima modifica di andbin; 06-02-2017 a 21:47
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sul componente da scrollare, NON c'è nulla da impostare riguardo posizione/dimensione. Ci pensa JScrollPane (per essere più precisi il JViewport interno a JScrollPane) a disporre appropriatamente il componenteDaScrollare.
    JViewport pare non esserci proprio nel mio codice.
    Nelle Properties del JScrollPane c'è un viewport (ora in <default>), dove posso scegliere tra "Value from existing component" oppure "Custom code".
    C'è anche un viewportBorderBounds, attualmente settato (in automatico o a seguito di qualche trascinamento per mettere in ordine gli oggetti) su [1, 1, -2, -2]...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    JViewport pare non esserci proprio nel mio codice.
    Nelle Properties del JScrollPane c'è un viewport (ora in <default>), dove posso scegliere tra "Value from existing component" oppure "Custom code".
    C'è anche un viewportBorderBounds, attualmente settato (in automatico o a seguito di qualche trascinamento per mettere in ordine gli oggetti) su [1, 1, -2, -2]...
    Nulla di tutto questo ti serve o interessa. Per l'uso comune e basilare, si può usare JScrollPane tranquillamente SENZA dover "sapere" nulla di JViewport!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Piccolo progresso: nel codice di esecuzione delle operazioni ho aggiunto un setLocation(); all'output:
    codice:
    this.add(OutputArea).setLocation(0,0);
    OutputArea.append("..." + "\n");
    Con quelle coordinate pongo la JTextArea nel punto dove cade di default, se cambio i valori, esso scende, ma resta in secondo piano, cioè dentro il JFrame, non nel JScrollPane.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    codice:
    this.add(OutputArea).setLocation(0,0);
    Di per sé NON serve alcun setLocation per poter usare un JTextArea in un JScrollPane.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.