Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Creare JTextArea con scroll

    Salve gente,
    siccome sono stufo di fare tutte le volte la textarea e poi aggiungerci lo scroll, volveo fare una classe ad hoc.

    codice:
    import java.awt.Rectangle;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    
    public class jTextAreaScroll extends JTextArea {
    	
    	public JScrollPane jsp=null;
    	
    	public jTextAreaScroll(int x, int y, int w, int h) {
    		super();
    		this.setBounds(new Rectangle(x,y,w,h));
    		this.setWrapStyleWord(true);
    		jsp = new JScrollPane(this);
    		jsp.setBounds(this.getX(),this.getY(),this.getWidth(),this.getHeight());
    		
    		}
    }
    codice:
    	jtp = new jTextAreaScroll(10,25,300,300);
    	jPanel.add(jtp, null);
    ma la text area viene creata, mentre la scroll nulla di nulla...
    dove sta l'errore?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    l'errore sta nel fatto che lo scroll pane lo tieni nascosto nella classe
    devi estendere JScrollPane

  3. #3
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da floyd
    l'errore sta nel fatto che lo scroll pane lo tieni nascosto nella classe
    devi estendere JScrollPane
    :master:
    invece che estendere la textarea estendo la scroll pane?

  4. #4

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da floyd
    c'ho provato ma come??

    codice:
    import java.awt.Rectangle;
    import java.awt.ScrollPane;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class jTextScroll extends ScrollPane {
    
    	public JTextArea jta=null;
    	
    	public jTextScroll(int x, int y, int w, int h) {
    		this.setBounds(new Rectangle(x,y,w,h));
    	        jta = new JTextArea();
    		jta.setBounds(new Rectangle(x,y,w,h));
    
    		}
    }
    e poi l'aggiungo come l'altra..
    ma nn va, disegna robe strane..

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    private JTextArea jta = new JTextArea();
    public jTextScroll(int x, int y, int w, int h) {
      super(jta);
      ...
    }

  7. #7
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    Originariamente inviato da floyd
    codice:
    private JTextArea jta = new JTextArea();
    public jTextScroll(int x, int y, int w, int h) {
      super(jta);
      ...
    }
    nn va
    codice:
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    	The field jTextScroll.jta is not visible

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    giusto, non si puō usare una proprietā prima dell'esecuzione del costruttore della super classe
    codice:
      class jTextScroll extends JScrollPane {
        private JTextArea jta = new JTextArea();
        public jTextScroll(int x, int y, int w, int h) {
          setViewportView(jta);
          jta.setBounds(new java.awt.Rectangle(x,y,w,h));
        }
      }

  9. #9
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    allora:

    jTextScroll.java
    codice:
    package provaGui;
    
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public   class jTextScroll extends JScrollPane {
        private JTextArea jta = new JTextArea();
        public jTextScroll(int x, int y, int w, int h) {
          setViewportView(jta);
          jta.setBounds(new java.awt.Rectangle(x,y,w,h));
        }
      }
    Gui.java
    codice:
    package provaGui;
    
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    
    public class Gui extends JFrame {
    
    	private static final long serialVersionUID = 1L;
    
    	private JPanel jContentPane = null;
    
    	/**
    	 * This is the default constructor
    	 */
    	public Gui() {
    		super();
    		initialize();
    	}
    
    	/**
    	 * This method initializes this
    	 * 
    	 * @return void
    	 */
    	private void initialize() {
    		this.setSize(300, 200);
    		this.setContentPane(getJContentPane());
    		this.setTitle("JFrame");
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.show();
    	}
    
    	/**
    	 * This method initializes jContentPane
    	 * 
    	 * @return javax.swing.JPanel
    	 */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(null);
    			jContentPane.add(new jTextScroll(0,0,100,100),null);
    		}
    		return jContentPane;
    	}
    
    }
    GuiMain.java
    codice:
    package provaGui;
    
    public class GuiMain {
    
    	public static void main (String argv[]){
    		new Gui();
    	}
    }
    risulatao:
    codice:
    Exception in thread "main" java.lang.NullPointerException
    	at javax.swing.text.PlainView.getLineWidth(Unknown Source)
    	at javax.swing.text.PlainView.getPreferredSpan(Unknown Source)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(Unknown Source)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(Unknown Source)
    	at javax.swing.plaf.basic.BasicTextAreaUI.getPreferredSize(Unknown Source)
    	at javax.swing.JComponent.getPreferredSize(Unknown Source)
    	at javax.swing.JTextArea.getPreferredSize(Unknown Source)
    	at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
    	at java.awt.Container.layout(Unknown Source)
    	at java.awt.Container.doLayout(Unknown Source)
    	at java.awt.Container.validateTree(Unknown Source)
    	at java.awt.Container.validateTree(Unknown Source)
    	at java.awt.Container.validateTree(Unknown Source)
    	at java.awt.Container.validateTree(Unknown Source)
    	at java.awt.Container.validateTree(Unknown Source)
    	at java.awt.Container.validate(Unknown Source)
    	at java.awt.Window.show(Unknown Source)
    	at provaGui.Gui.initialize(Gui.java:31)
    	at provaGui.Gui.<init>(Gui.java:18)
    	at provaGui.GuiMain.main(GuiMain.java:6)

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    at provaGui.Gui.initialize(Gui.java:31)
    che riga č la 31?

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.