Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105

    Swing Jscrollpane

    Ciao Ragazzi ho una domandina per chi di swing se ne intende un po.

    io ho questa situazione
    codice:
    		JFrame  frame = new JFrame("Upload monitor");
    		JtextArea area = new AppendTextArea(20,50);
    		area.setEditable(false);
    		JScrollPane pane = new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    
    		area.append("Start monitor...\n");
    
    
    		frame.getContentPane().add(pane);
    		frame.setLocation(200, 200);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.pack();
    		frame.setVisible(true);
    AppendTextArea e semplicemente
    codice:
    	class AppendTextArea extends JTextArea{
    		public AppendTextArea(int i, int j) {
    			super(i,j);
    		}
    		@Override
    		public void append(String str) {
    			super.append(str.concat("\n"));
    		}
    	}
    Come si puo vedere e un semplice monitor visivo, la mia domanda e visto che dovranno uscire dalle 700 alle 2000 righe di log c e un sistema per far scendere automaticamente lo scrollpane in modo da vedere sempre l ultima riga. (simulando il comando unix tail -100f)

    Grazie mille a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    105
    Ok trovata soluzione magari a qualcun altro potra servire/interessare

    codice:
    	class AppendTextArea extends JTextArea{
    
    		public AppendTextArea(int i, int j) {
    			super(i,j);
    		}
    
    		@Override
    		public void append(String str) {
    			super.append(str.concat("\n"));
    			this.setCaretPosition(this.getCaretPosition()+str.length());
    		}
    	}
    Ciao Grazie a tutti

  3. #3
    Io una volta lo stesso problema l'ho risolto cosi':

    Fai il tuo pane variabile d'istanza e poi quando fai l'append:

    codice:
    JScrollBar vbar = pane.getVerticalScrollBar();
    vbar.setValue(vbar.getMaximum());
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.