PDA

Visualizza la versione completa : (java) Problemi con barra di scorrimento orizzontale


abcd1000
01-10-2004, 09:17
Qualcuno mi può dire come mai non mi compare la barra di scorrimento orizzontale? Dove sbaglio?



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();
}
}

Andrea1979
01-10-2004, 13:14
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/tutorial/uiswing/components/editorpane.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 ;)

anx721
01-10-2004, 14:07
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.

abcd1000
01-10-2004, 14:52
Ho bisogno di usare jtextpane non posso sostituirlo con jtextarea
Comunque la soluzione di anx72, pare funzionare perfettamente. Provare per credere!

thx




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(JScrollPan e.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();
}
}

Loading