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

    Problema con JTextArea e JScrollPane

    Salve ragazzi ho un problema con un JtexArea.

    Allora creo la jtextarea, la inserisco in un jscrollpane tutto ok, quando ci vado a scrivere nel momento in cui supero con il testo l'altezza della JtextArea posso continuare a scrivere però il testo non mi viene mostrato e lo scroller al lato non funziona.

    Come mai???

    pposto il codice:

    codice:
    package Panel;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.Point;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JWindow;
    import javax.swing.ScrollPaneConstants;
    import javax.swing.WindowConstants;
    
    import Componenti_Swing.ButtonFormat;
    import Componenti_Swing.CentraComponents;
    import Componenti_Swing.Dimensione;
    import Componenti_Swing.JTextAreaFormat;
    
    public class Note extends JFrame{
       public Note(){
    
    	   super("Note Ricetta");
    
    	  this.setSiza(400,250);
    	  
              JPanel wcp = new JPanel();
    	  
             this.getContentPane().add(wcp, BorderLayout.CENTER);
    	      
    	      JTextAreaFormat textArea = new JTextAreaFormat(5,5);
    
    
    	      wcp.add(new JScrollPane(textArea), BorderLayout.CENTER);
    	      
    	      ButtonFormat buttonSalva = new ButtonFormat("Salva");
    	      ButtonFormat buttonCancella = new ButtonFormat("Cancella");
    	      
    	      JPanel buttonPanel = new JPanel();
    	      buttonPanel.add(buttonSalva);
    	      buttonPanel.add(buttonCancella);
    	      
    	      wcp.add(buttonPanel,BorderLayout.SOUTH);
    	      
    	      this.setVisible(true);
    	      this.setEnabled(true);
    
       }
    }
    Classe textAreaFormat

    codice:
    package Componenti_Swing;
    
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.Toolkit;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class JTextAreaFormat extends JTextArea
    {
    	public JTextAreaFormat(int columns, int row){
    	   this.setColumns(columns);
           this.setLineWrap(true);
           this.setRows(row);
           this.setWrapStyleWord(true);
           
           Toolkit t = Toolkit.getDefaultToolkit();
           Dimension screenSize = t.getScreenSize();
           double width = screenSize.getWidth() ;
           double height= screenSize.getHeight() ;
         
    	
    	   if ((width == 1440.0) && (height == 900.0))
    	   {
    		   //System.out.println("Sono di questa dimensione");
    		   Font fontText = new Font("Century Gothic", Font.PLAIN, 18);
    		   Dimension dText = new Dimension();
    	       dText.setSize(width*0.3, height * 0.035);
    		   this.setPreferredSize(dText);
    		   this.setFont(fontText);
       //        System.out.println("mi ha dimensionato");
    		   return;
    	   }}
    spero di essere stato chiaro

    Grazie fin da ora per le vostre risposte,

    Michele

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

    Re: Problema con JTextArea e JScrollPane

    Originariamente inviato da bircastri
    codice:
    public class Note extends JFrame{
       public Note(){
    
    	   super("Note Ricetta");
    
    	  this.setSiza(400,250);
    	  
              JPanel wcp = new JPanel();
    	  
             this.getContentPane().add(wcp, BorderLayout.CENTER);
    	      
    	      JTextAreaFormat textArea = new JTextAreaFormat(5,5);
    
    
    	      wcp.add(new JScrollPane(textArea), BorderLayout.CENTER);
    	      
    	      ButtonFormat buttonSalva = new ButtonFormat("Salva");
    	      ButtonFormat buttonCancella = new ButtonFormat("Cancella");
    	      
    	      JPanel buttonPanel = new JPanel();
    	      buttonPanel.add(buttonSalva);
    	      buttonPanel.add(buttonCancella);
    	      
    	      wcp.add(buttonPanel,BorderLayout.SOUTH);
    	      
    	      this.setVisible(true);
    	      this.setEnabled(true);
    
       }
    }
    Non ho letto tutto tutto (ora non ho molto tempo ... sto uscendo).
    Ma c'è una cosa che non mi torna.
    Il JPanel wcp lo metti nella parte CENTER del BorderLayout (predefinito) del content-pane e fin qui ok.

    Ma il JPanel ha per default un FlowLayout (e non vedo cambiamenti sul suo layout manager), quindi fare:

    wcp.add(new JScrollPane(textArea), BorderLayout.CENTER);
    wcp.add(buttonPanel,BorderLayout.SOUTH);

    Non fanno certo quello che volevi, perché il JPanel NON ha un BorderLayout.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.