Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    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

  2. #12
    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.

  3. #13
    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

  4. #14
    Il problema è che la JTextArea (o forse il contenitore JScrollPane?), in fase di output, se ne va nel livello del JFrame.
    Ho immaginato che andasse imposta la posizione, visto che sennò la piazza a X=0, Y=0. Se non occorre impostare una posizione, perché in fase di output si sposta nell'origine?

    ---

    Sono riuscito a fare apparire i risultati!
    codice:
    this.add(jScrollPane1);
    OutputArea.append("..." + "\n");
    Però ho problemi chiedendo risultati con più righe, oppure cancellando con l'apposito Button.
    Ultima modifica di Gas75; 07-02-2017 a 18:28

  5. #15
    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(jScrollPane1);
    Se quel this è riferito ad un pannello (che si vuole contenga il JScrollPane) ... infatti È assolutamente giusto!

    Quote Originariamente inviata da Gas75 Visualizza il messaggio
    Però ho problemi chiedendo risultati con più righe, oppure cancellando con l'apposito Button.
    Cioè? Vuoi forse che non scrolli automaticamente verso il fondo man mano che aggiungi righe?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #16
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Cioè? Vuoi forse che non scrolli automaticamente verso il fondo man mano che aggiungi righe?
    No.
    Succede che la JTextArea appare un po' più sopra della posizione iniziale, finché ci sono poche righe, altrimenti visualizza soltanto le prime 8 e non scrolla le altre. Inoltre pare instabile graficamente: tutta la parte di input, dopo l'output, scende in basso e in base a come passo il mouse, vedo gli oggetti swing oppure la JTextArea... Eppure gli oggetti sono definiti nel loro rigido Layout.
    Ultima modifica di Gas75; 07-02-2017 a 20:27

  7. #17
    Questa è la situazione quando stampo l'output, e cosa succede dopo qualche secondo, se clicco Cancella o un punto qualsiasi dell'interfaccia.
    Clipboard01.jpg
    Clipboard02.jpg

  8. #18
    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
    Questa è la situazione quando stampo l'output, e cosa succede dopo qualche secondo, se clicco Cancella o un punto qualsiasi dell'interfaccia.
    Clipboard01.jpg
    Clipboard02.jpg
    Gas75 .... ne so esattamente quanto prima, non potendo vedere il codice!

    Vedendo i due ultimi screenshot però mi viene un dubbio. Quelle cose (Clipboard01.jpg in modo specifico) capitano solitamente quando più componenti nello stesso contenitore (quindi sono per così dire "fratelli", strutturalmente) hanno posizioni/dimensioni tali per cui alcuni di questi componenti si sovrappongono e quindi entra in gioco lo z-order (che in Swing è sempre un po' critico).

    Quindi, prima dicevi di aver fatto

    this.add(jScrollPane1);

    e questo È corretto se quel this è riferito ad un pannello che è contenuto nella scheda "Calcolo radici".

    Non è che .... da qualche parte c'è anche un

    this.add(tuaTextArea);

    ?? Quest'ultimo è sbagliato! Il JTextArea va solo settato come component "view" in JScrollPane. NON va aggiunto esplicitamente con add in un contenitore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #19
    Di this.add ce ne stanno due, e ho argomentato entrambi con il Jscrollpane, seguito dall'append sulla TextArea. Sono due perché c'è un else da gestire, con output sempre nella TextArea...

    Con il layout introdotto non ci sono oggetti nella stessa cella, e confermo che tentando di farli coesistere, sballano di posizione.

    JScrollPane ha queste istruzioni:
    codice:
    jScrollPane1 = new javax.swing.JScrollPane();
    
    jScrollPane1.setAutoscrolls(true);
    
    
    jScrollPane1.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
    
    
    jScrollPane1.setMaximumSize(new java.awt.Dimension(146, 91));
    
    
    jScrollPane1.setMinimumSize(new java.awt.Dimension(146, 91));
    
    
    jScrollPane1.setOpaque(false);
    
    
    jScrollPane1.setPreferredSize(new java.awt.Dimension(146, 91));
    
    
    // Code of sub-components and layout - not shown here
    
    
    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 3;
    gridBagConstraints.gridwidth = 4;
    gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
    gridBagConstraints.weightx = 1.0;
    gridBagConstraints.weighty = 1.0;
    gridBagConstraints.insets = new java.awt.Insets(18, 20, 18, 20);
    jPanel1.add(jScrollPane1, gridBagConstraints);
    La TextArea ha queste altre:
    codice:
    OutputArea = new javax.swing.JTextArea();
    OutputArea.setEditable(false);
    OutputArea.setColumns(20);
    OutputArea.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
    OutputArea.setRows(8);
    OutputArea.setTabSize(8);
    OutputArea.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
    OutputArea.setMaximumSize(new java.awt.Dimension(146, 91));
    OutputArea.setMinimumSize(new java.awt.Dimension(146, 91));
    OutputArea.setPreferredSize(new java.awt.Dimension(146, 91));
    jScrollPane1.setViewportView(OutputArea);
    Da novizio mi viene qualche sospetto circa il rapporto tra dimensioni e righe/colonne...

    Ma resta strano il fatto che cliccando ovunque dentro il JFrame, lo scrollpane come se collassa e finisce poi in secondo piano...

  10. #20
    Posso passare il numero di righe che deve avere la TextArea prendendolo dal contenuto di input di uno dei TextField?

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