Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883

    (java) Problemi con barra di scorrimento orizzontale

    Qualcuno mi può dire come mai non mi compare la barra di scorrimento orizzontale? Dove sbaglio?

    codice:
    import java.awt.BorderLayout;
    import java.awt.Container;
    
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextPane;
    
    public class ScrollBarTest extends JFrame {
    
    	private String text = "very very very very very very very very very very very very long text";
    	public ScrollBarTest() {
    		super("ScrollBarTest");
    		JTabbedPane documents = new JTabbedPane();
    		JTextPane editor = new JTextPane();
    		editor.setText(text);
    		JScrollPane editorScroll = new JScrollPane(editor);
    		documents.add("doc1", editorScroll);
    		Container c = getContentPane();
    		c.setLayout(new BorderLayout());
    		c.add(documents, BorderLayout.CENTER);
    		setSize(200, 300);
    		setVisible(true);
    		
    	}
    	
    	public static void main(String[] args) {
    		new ScrollBarTest();
    	}
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao, se devi mantenere le cose semplici, puoi usare una JTextArea invece di una JTextPane.

    Chiaro che i JTextPane sono componenti "più evoluti" rispetto alle semplici TextArea, ma richiedono anche un po' più customizzazioni

    http://java.sun.com/docs/books/tutor...ditorpane.html

    se vuoi usare le JTextArea, cambia tuti i JTextPane che compaiono nel tuo codice in JTextArea, altrimenti dovrai definire un renderer per il tuo documento... il link lì sopra contiene il necessario
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    IL JTextPane pare che esegua il wrapline di default, e non sono riuscito a trovare l'istruzione che disabilita questa funzionalita. Ho solo constatato che, almeno nel mio caso, se aggiungi il JTextPane al centro di un JPanel p con BorderLayout, e poi costruisci lo scroll pane su p, e non direttamente sul JTextPane, il wrap line si disabilita, e la barra orizzontale compare.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    883
    Ho bisogno di usare jtextpane non posso sostituirlo con jtextarea
    Comunque la soluzione di anx72, pare funzionare perfettamente. Provare per credere!

    thx

    codice:
    import java.awt.BorderLayout;
    import java.awt.Container;
    
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextPane;
    
    public class ScrollBarTest extends JFrame {
    
    	private String text = "very very very very very very very very very very very very long text";
    	public ScrollBarTest() {
    		super("ScrollBarTest");
    		
    		JTabbedPane documents = new JTabbedPane();		
    		JTextPane editor = new JTextPane();
    		editor.setText(text);
    		
    		//editorScroll.setPreferredSize(new Dimension(200,200));
    		//editorScroll.setMinimumSize(new Dimension(10,10));
    		JPanel editorJP = new JPanel();
    		editorJP.setLayout(new BorderLayout());
    		editorJP.add(editor, BorderLayout.CENTER);
    		JScrollPane editorScroll = new JScrollPane(editorJP);
    		documents.add("doc1", editorScroll);		
    		
    		// if you only want horizontal scroll bars, then do this
    		//editorScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    		
    		Container c = getContentPane();
    		c.setLayout(new BorderLayout());
    		c.add(documents, BorderLayout.CENTER);
    		setSize(200, 300);
    		setVisible(true);		
    	}
    	
    	public static void main(String[] args) {
    		new ScrollBarTest();
    	}
    }

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.