jScrollPane ganz nach unten scrollen

Status
Nicht offen für weitere Antworten.

SBehnen27

Aktives Mitglied
ich habe für einen mini chat einen textpane in einem JScrollPane.

wenn ich selber eine nachricht schreibe, wird das fenster ganz nach unten gescrollt (autoscroll ist an).
wenn aber eine neue zeile kommt, weil mein partner mir etwas sendet, wird nicht nach unten gescrollt.
dafür wollte ich in die methode für das empfangen von nachrichten einbauen, dass das JScrollPane ganz nach unten scrollt.

Den code, wie das ´bei einer Scrollbar funzt, hab ich schon gefunden, aber das klappt wohl ned bei jscrollpanes ;(
 
S

stev.glasow

Gast
JScrolPane hat eine Methode getVerticalScrollBar() über das JScrollBar Objekt kannst du dann nach unten scrollen.
 

SBehnen27

Aktives Mitglied
das würde dann auf soetwas hinauslaufen:

jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());

seh ich das richtig?
er scheint auch mitzuscrollen... aber leider nicht nach ganz unten... eine zeile ist immer im nirvana und muss per hand rangescrollt werden ;)

oder hab ich da nen fehler drin?
 
S

stev.glasow

Gast
hm, war auch nur geraten :)
Aber ich hab's mal getestet und es ging:
Code:
public static void main(String[] args) throws Exception{
		JFrame f = new JFrame();
		final JTextPane t = new JTextPane();
		t.setSize(100, 100);
		JScrollPane p = new JScrollPane(t);
		final JScrollBar cb = p.getVerticalScrollBar();
		
		p.setSize(100, 100);
		f.add(p);
		f.setSize(100, 100);
		f.setVisible(true);
		
		Thread tr = new Thread(){
			public void run(){
				int x = 0;
				while(true){
					t.setText(t.getText() + "\n" + "uschie" + (x++));
					cb.setValue(cb.getMaximum());
					try{
						Thread.sleep(2000);
					}
					catch(Exception e){
						return;
					}
				}
			}
		};
		tr.setDaemon(true);
		tr.start();
		System.in.read();
		
		
	}
Wenn der Code nicht hilft, zeig mal deinen.
 

SBehnen27

Aktives Mitglied
ich hab deinen code ausprobiert.
leider hat der auch ned so gescrolled, wie ich mir das vorgestellt habe.

hier mal mein jungfräulicher Code.
Problem ist, dass nicht gescrollt wird, wenn mein Partner mir etwas sendet und dadurch eine neue zeile dazukommt.

Code:
/*
 * Chat.java
 *
 * Created on 22. März 2005, 18:09
 */

package CardHeroes;
import java.io.*;
import java.net.*;
import java.awt.*; 
import java.awt.event.*; 
import java.awt.event.KeyEvent;
import javax.swing.JScrollPane.*;
/**
 *
 * @author  KoRnFreak
 */
public class Chat extends javax.swing.JDialog implements Runnable, KeyListener {
    
    private String IP ="0";
    private Spieler Selber;
    private ObjectInputStream ObjectIn=null;
    private ObjectOutputStream ObjectOut=null;
    private DataInputStream DataIn=null;
    private DataOutputStream DataOut=null;
    /** Creates new form Chat */
    public Chat(java.awt.Frame parent, boolean modal, String IP, Spieler Selber) {
        super(parent, modal);
        this.IP = IP;
        this.Selber = Selber;
        initComponents();
        senden.setText("OK");
        setTitle("CardHeroes Chat");
        this.addKeyListener(this); 
        ausgang.setLineWrap(true); 
        eingang.setLineWrap(true); 
    }
    public void keyPressed(KeyEvent e) {  
    } 

    public void keyReleased(KeyEvent e) { 
    } 

    public void keyTyped(KeyEvent e) { 
        if ((e.isAltDown()) && (e.getKeyChar() == 's')){ 
            senden(ausgang.getText());
        }
    } 

    public void run(){
        initNet();
        while(true){
             try{
              empfangen();
              Thread.sleep(1000);
             }
             catch(Exception e){
                 
             }
        }  
    }
    public void senden(String nachricht){
        try{
            ObjectOut.writeObject(Selber.getName()+": "+nachricht);
            ObjectOut.flush();
            ObjectOut.reset();
            eingang.setText(eingang.getText()+"\n"+Selber.getName()+": "+nachricht);
            ausgang.setText("");
            jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
        }
        catch(Exception e){}
    }
    public void empfangen(){
        try{
            String nachricht = ((String)ObjectIn.readObject());
            eingang.setText(eingang.getText()+"\n"+nachricht);
            jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum()+10);
        }
        catch (Exception e){}
    }
    public void initNet(){
        int geschafft = 0;
        try
           {
             Socket ConnectionSocket=new Socket(IP,9998);
             this.ObjectOut=new ObjectOutputStream(ConnectionSocket.getOutputStream());
             this.ObjectIn=new ObjectInputStream(ConnectionSocket.getInputStream());
             geschafft = 1;
             //StreamIn.ObjectObject();
           }
       catch(Exception e){
           geschafft = 0; 
       }
        if(geschafft == 0){
           try{
                ServerSocket ConnectionSocket=new ServerSocket(9998);
                Socket ClientConnection=ConnectionSocket.accept();
                this.ObjectIn=new ObjectInputStream(ClientConnection.getInputStream());
                this.ObjectOut=new ObjectOutputStream(ClientConnection.getOutputStream());		
            }
            catch(Exception e){
            }
        }
    }

    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        eingang = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        ausgang = new javax.swing.JTextArea();
        senden = new javax.swing.JButton();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setResizable(false);
        eingang.setEditable(false);
        jScrollPane1.setViewportView(eingang);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(0, 0, 450, 260);

        ausgang.setEditable(false);
        jScrollPane2.setViewportView(ausgang);

        getContentPane().add(jScrollPane2);
        jScrollPane2.setBounds(2, 262, 380, 80);

        senden.setText("jButton1");
        senden.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                sendenActionPerformed(evt);
            }
        });

        getContentPane().add(senden);
        senden.setBounds(390, 270, 60, 70);

        pack();
    }

    private void sendenActionPerformed(java.awt.event.ActionEvent evt) {                                       
        senden(ausgang.getText());
        ausgang.requestFocus(); 
    }                                      
    
    /**
     * @param args the command line arguments
     */
    
    // Variables declaration - do not modify
    private javax.swing.JTextArea ausgang;
    private javax.swing.JTextArea eingang;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JButton senden;
    // End of variables declaration
    
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JScrollPane immer bis ganz nach unten scrollen lassen AWT, Swing, JavaFX & SWT 5
R JScrollBar / JScrollPane: Ermitteln ob ganz unten AWT, Swing, JavaFX & SWT 2
C JScrollPane immer ganz unten ausrichten AWT, Swing, JavaFX & SWT 17
W JTable wird vertikal in JScrollPane nicht ganz angezeigt AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
B Swing JScrollPane scrollt nicht AWT, Swing, JavaFX & SWT 10
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
N Swing JScrollPane mit Tastatur bedienen? AWT, Swing, JavaFX & SWT 0
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
MaxG. Swing JScrollPane AWT, Swing, JavaFX & SWT 10
Soloeco Swing JScrollPane AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
Thallius JScrollPane Scrollpos setzen nach Neuzeichnen AWT, Swing, JavaFX & SWT 3
P MalProgramm mit JScrollPane und Canvas AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
V JScrollPane im zur Laufzeit verändernden JFrame AWT, Swing, JavaFX & SWT 0
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
Bluedaishi JScrollpane AWT, Swing, JavaFX & SWT 0
L JScrollPane scrollt nicht !! AWT, Swing, JavaFX & SWT 3
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
F JTable mit JScrollPane AWT, Swing, JavaFX & SWT 4
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Transparentes JScrollPane AWT, Swing, JavaFX & SWT 0
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
A Swing JScrollPane Problem AWT, Swing, JavaFX & SWT 6
H Swing JScrollPane mit "viel Inhalt" scrollt zu langsam (inkl. See-For-Yourself.jar :D) AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane in JScrollPane - Problem AWT, Swing, JavaFX & SWT 3
K Bug in JScrollPane? AWT, Swing, JavaFX & SWT 4
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
M JScrollPane Header AWT, Swing, JavaFX & SWT 3
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
V LayoutManager JScrollPane verwirft Elementanordnung AWT, Swing, JavaFX & SWT 3
B JScrollPane Problem AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane AWT, Swing, JavaFX & SWT 7
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
F 2D-Grafik Skalieren der Scrollbars beim Zoomen einer JScrollPane AWT, Swing, JavaFX & SWT 4
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
C jPanel auf jScrollPane zentrieren AWT, Swing, JavaFX & SWT 3
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
S JScrollPane reagiert nicht AWT, Swing, JavaFX & SWT 3
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
D LayoutManager JScrollPane mit dynamischem Inhalt AWT, Swing, JavaFX & SWT 8
P Swing JScrollpane AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
J JScrollPane Probleme AWT, Swing, JavaFX & SWT 3
S Swing JScrollPane verliert Scrollbars AWT, Swing, JavaFX & SWT 5
D Swing JTable in JScrollpane beliebig verbreitern AWT, Swing, JavaFX & SWT 5
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
M JScrollPane Problem AWT, Swing, JavaFX & SWT 6
S Swing JScrollpane und ViewPort AWT, Swing, JavaFX & SWT 4
D JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 12
X JScrollPane funzt net... AWT, Swing, JavaFX & SWT 5
H jscrollpane AWT, Swing, JavaFX & SWT 12
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
A Problem mit JScrollPane in einer JScrollpane AWT, Swing, JavaFX & SWT 4
B JScrollPane Problem AWT, Swing, JavaFX & SWT 25
T Swing JScrollPane- und Tabelle-Header Problem AWT, Swing, JavaFX & SWT 25

Ähnliche Java Themen

Neue Themen


Oben