Barra de rolagem automática JTextArea

16 respostas
binhole

Por favor estou tentando gerar uma barra de rolagem automática quando exceder o espaço em minha JTextArea e ir aumentando automáticamente… dentro do método EditText(String); que é chamado por outra classe com o parametro do texto à ser inserido…
coloquei o método jTextArea.setCaretPosition( jTextArea.getText().length() ); após inserir o texto… mesmo assim não tá funcionando o que eu fiz de errado? alguém pode me ajudar

Prompt

package IGrafica_Services;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JTextArea;
import java.awt.Rectangle;
import javax.swing.JTextField;
import java.awt.SystemColor;
import java.awt.event.KeyEvent;
import java.util.ArrayList;

import javax.swing.JLabel;

import conexao.prototipo.NewCliente;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.JScrollBar;
import javax.swing.text.BadLocationException;

public class Prompt extends MonitorPress {

	private static final long serialVersionUID = 1L;
	NewCliente ObjCliente = new NewCliente();  //  @jve:decl-index=0:
	private JFrame jFrame = null;  
	private JPanel jContentPane = null;
	private JTextArea jTextArea = null;
	Dimension t = Toolkit.getDefaultToolkit().getScreenSize();  //  @jve:decl-index=0:
	private JTextField Comando = null;
	private JLabel jLabel = null;
	private JLabel conectado = null;
	private String line;  //  @jve:decl-index=0:
	private void JFrame() {
		jFrame = new JFrame();
		jFrame.setSize(new Dimension(677, 463));
		jFrame.setTitle("Prompt Remoto");
		jFrame.setResizable(false);
		jFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_xp_terminal.png"));
		jFrame.setContentPane(getJContentPane());
				
}

	
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			conectado = new JLabel();
			conectado.setBounds(new Rectangle(1, 37, 410, 17));
			conectado.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/computer_link.png"));
			conectado.setForeground(SystemColor.desktop);
			conectado.setText("");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(270, 7, 118, 22));
			jLabel.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_osx_terminal.png"));
			jLabel.setForeground(SystemColor.desktop);
			jLabel.setText("Prompt Remoto");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setBackground(new Color(147, 169, 189));
			jContentPane.add(getJTextArea(), null);
			jContentPane.add(getComando(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(conectado, null);
			jContentPane.add(getEnviacmd(), null);
			jContentPane.add(getscrool(), null);
					
		}
		return jContentPane;
	}
	
	public Prompt(){
		JFrame();
		jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		jFrame.setVisible(true);
		jFrame.setLocation((t.width - 677)/2 , (t.height - 463)/2);
		conectado.setText("Conectado : " + super.Ip + " , " + super.porta );			
	}

	private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
			jTextArea.setBounds(new Rectangle(1, 59, 668, 342));
			jTextArea.setEnabled(true);
			jTextArea.setBackground(SystemColor.controlText);
			jTextArea.setForeground(SystemColor.window);
			jTextArea.setFont(new Font("Dialog", Font.PLAIN, 11));
			jTextArea.setEditable(false);
			jTextArea.setLineWrap( true ); //muda de linha automatico   
		}
		return jTextArea;
	}
	
	private JScrollPane getscrool() {
		if (scrool == null) {
			scrool.setBackground(Color.white);
			scrool.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );  
			scrool.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );   
	}
		
		return scrool;
	}

	private JTextField getComando() {
		if (Comando == null) {
			Comando = new JTextField();
			Comando.setBounds(new Rectangle(2, 401, 649, 30));
			Comando.setBackground(SystemColor.info);
			Comando.addKeyListener(new java.awt.event.KeyListener() {
				public void keyReleased(java.awt.event.KeyEvent e) {
					int code = e.getKeyCode();
					if(code == KeyEvent.VK_ENTER){
						
						ProcessoEnviar();	
						
					}
										
				}
				public void keyTyped(java.awt.event.KeyEvent e) {
				}
				public void keyPressed(java.awt.event.KeyEvent e) {
				}
			});
		}
		return Comando;
	}
	String g = "";  //  @jve:decl-index=0:
	private JButton jButton = null;
	private JButton enviacmd = null;
	
	
	JScrollPane scrool = new JScrollPane(jTextArea);  
	
	public void EditText(String line2){
						  
		jTextArea.append(" \n" + line2);
		jTextArea.setCaretPosition( jTextArea.getText().length() ); 
		
		}
	
		
		
	public void ProcessoEnviar(){
		new Thread(){
			public void run(){
			
				ObjCliente.ExecutarConexao(Comando.getText());	
				Comando.setText("");
								
			}
				}.start();
			}


	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new Rectangle(397, 403, 0, 0));
		}
		return jButton;
	}


	/**
	 * This method initializes enviacmd	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getEnviacmd() {
		if (enviacmd == null) {
			enviacmd = new JButton();
			enviacmd.setBounds(new Rectangle(650, 401, 19, 31));
			enviacmd.setBackground(Color.black);
			enviacmd.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/bullet_go.png"));
			enviacmd.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					ProcessoEnviar();	
				}
			});
		}
		return enviacmd;
	}


		

}

16 Respostas

davidtiagoconceicao

Adicione o JTextArea a um JScrollPane.
Pra falar bem a verdade, não li o seu código :lol:
Mas isso geralmente funciona.
Exemplo:

JTextArea textArea = new JTextArea();
		JScrollPane scrollPane = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
binhole

olha cara… tentei implementar desta forma mas não deu certo… por favor pode me dar um auxilio baseando em meu código…? obrigado

binhole

Pra evitar das pessoas terem que ler todo o código eu simplifiquei apenas com os métodos que preciso de orientação, utilizando a sugestão acima, apresenta o seguinte erro :

IWAV0052E Invocation Target Exception creating IGrafica_Services.Prompt
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.NullPointerException
	at IGrafica_Services.Prompt.getscrool(Prompt.java:101)
	at IGrafica_Services.Prompt.getJContentPane(Prompt.java:71)
	at IGrafica_Services.Prompt.JFrame(Prompt.java:46)
	at IGrafica_Services.Prompt.<init>(Prompt.java:78)
	... 12 more

Forma simplificada para leitura

private JScrollPane getscrool() {
		if (scrool == null) {
			scrool.setBackground(Color.white);
			scrool = new JScrollPane(jTextArea, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);  
		}
		
		return scrool;
	}


private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
			jTextArea.setBounds(new Rectangle(1, 59, 668, 342));
			jTextArea.setEnabled(true);
			jTextArea.setBackground(SystemColor.controlText);
			jTextArea.setForeground(SystemColor.window);
			jTextArea.setFont(new Font("Dialog", Font.PLAIN, 11));
			jTextArea.setEditable(false);
			jTextArea.setLineWrap( true ); //muda de linha automatico   
		}
		return jTextArea;
	}

private JPanel getJContentPane() {
		if (jContentPane == null) {
			conectado = new JLabel();
			conectado.setBounds(new Rectangle(1, 37, 410, 17));
			conectado.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/computer_link.png"));
			conectado.setForeground(SystemColor.desktop);
			conectado.setText("");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(270, 7, 118, 22));
			jLabel.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_osx_terminal.png"));
			jLabel.setForeground(SystemColor.desktop);
			jLabel.setText("Prompt Remoto");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setBackground(new Color(147, 169, 189));
			jContentPane.add(getJTextArea(), null);
			jContentPane.add(getComando(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(conectado, null);
			jContentPane.add(getEnviacmd(), null);
			jContentPane.add(getscrool(), null);
					
		}
		return jContentPane;
	}
	
public void EditText(String line2){
						  
		jTextArea.append(" \n" + line2);
		jTextArea.setCaretPosition( jTextArea.getText().length() ); 
		
		}
binhole

Além do davidtiagoconceicao, mas alguém pode me ajudar?

E

Ola amigo estava olhando seu codigo e o seguinte:

private JScrollPane getscrool() {  


         if (scrool == null) {  
Se scroll e nulo  deveria criar um :

             scrool =  new JScrollPane ():

             scrool.setBackground(Color.white);  
             scrool.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );    
             scrool.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );     
     }  
           
         return scrool;  
     }

Tentai ai qualquer coisa me fala ....

binhole

esqure obrigado cara… o

olha agora não tá apresentando mais o erro que informei acima… porém ainda não tá gerando a barra de rolagem automática segue como está o código agora.

private JPanel getJContentPane() {
		if (jContentPane == null) {
			conectado = new JLabel();
			conectado.setBounds(new Rectangle(1, 37, 410, 17));
			conectado.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/computer_link.png"));
			conectado.setForeground(SystemColor.desktop);
			conectado.setText("");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(270, 7, 118, 22));
			jLabel.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_osx_terminal.png"));
			jLabel.setForeground(SystemColor.desktop);
			jLabel.setText("Prompt Remoto");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.setBackground(new Color(147, 169, 189));
			jContentPane.add(getJTextArea(), null);
			jContentPane.add(getComando(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(conectado, null);
			jContentPane.add(getEnviacmd(), null);
			jContentPane.add(getscrool(), null);
					
		}
		return jContentPane;
	}

private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
			jTextArea.setBounds(new Rectangle(1, 59, 668, 342));
			jTextArea.setEnabled(true);
			jTextArea.setBackground(SystemColor.controlText);
			jTextArea.setForeground(SystemColor.window);
			jTextArea.setFont(new Font("Dialog", Font.PLAIN, 11));
			jTextArea.setEditable(false);
			jTextArea.setLineWrap( true ); //muda de linha automatico   
		}
		return jTextArea;
	}

private JScrollPane getscrool() {    
		  
		  
        if (scrool == null) {    
            scrool =  new JScrollPane();
            scrool.setBackground(Color.white);    
            scrool.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );      
            scrool.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );       
    }    
        
        return scrool;    
    }  

public void EditText(String line2){  
        
        jTextArea.append(" \n" + line2);  
        jTextArea.setCaretPosition( jTextArea.getText().length() );   
          
        }

ele escreve a cada chamada de método EditText normalmente no jTextArea, porém ainda não tá gerando a barra de rolagem?

E

Sugestão:

Faça isso e se de certo me fala …

com Base no primeiro post faça:

Apague esse linha !!!

136| JScrollPane scrool = new JScrollPane(jTextArea);

Adicione na Linha abaixo da linha 99

100| JScrollPane scrool = new JScrollPane(jTextArea);

Altere

50| private JPanel getJContentPane()

para

50| private Container getJContentPane()

Altere

32| private JPanel jContentPane = null;

para

32| private Container jContentPane = null;

Altere

62| jContentPane = new JPanel();

para

62| jContentPane;

importe

import java.awt.Container

binhole

Obrigado até agora cara… segue o erro que é apresentado agora após alteração do código.

IWAV0052E Invocation Target Exception creating IGrafica_Services.Prompt
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.Error: Unresolved compilation problem: 
	Syntax error, insert "AssignmentOperator Expression" to complete Expression

	at IGrafica_Services.Prompt.getJContentPane(Prompt.java:64)
	at IGrafica_Services.Prompt.JFrame(Prompt.java:47)
	at IGrafica_Services.Prompt.<init>(Prompt.java:79)
	... 12 more

Classe Prompt após alteração

package IGrafica_Services;  
  
import javax.swing.JFrame;  
import javax.swing.JPanel;  
import javax.swing.JScrollPane;  
  
import java.awt.Color;  
import java.awt.Container;
import java.awt.Dimension;  
import java.awt.Toolkit;  
  
import javax.swing.JTextArea;  
import java.awt.Rectangle;  
import javax.swing.JTextField;  
import java.awt.SystemColor;  
import java.awt.event.KeyEvent;  
import java.util.ArrayList;  
  
import javax.swing.JLabel;  
  
import conexao.prototipo.NewCliente;  
import javax.swing.JButton;  
import javax.swing.ImageIcon;  
import java.awt.Font;  
import javax.swing.JScrollBar;  
import javax.swing.text.BadLocationException;  
  
public class Prompt extends MonitorPress {  
  
    private static final long serialVersionUID = 1L;  
    NewCliente ObjCliente = new NewCliente();  //  @jve:decl-index=0:  
    private JFrame jFrame = null;    
    private Container jContentPane = null; 
    private JTextArea jTextArea = null;  
    Dimension t = Toolkit.getDefaultToolkit().getScreenSize();  //  @jve:decl-index=0:  
    private JTextField Comando = null;  
    private JLabel jLabel = null;  
    private JLabel conectado = null;  
    private String line;  //  @jve:decl-index=0:  
	private JScrollPane scrool;
    private void JFrame() {  
        jFrame = new JFrame();  
        jFrame.setSize(new Dimension(677, 463));  
        jFrame.setTitle("Prompt Remoto");  
        jFrame.setResizable(false);  
        jFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_xp_terminal.png"));  
        jFrame.setContentPane(getJContentPane());  
                  
}  
  
      
    private Container getJContentPane() {
        if (jContentPane == null) {  
            conectado = new JLabel();  
            conectado.setBounds(new Rectangle(1, 37, 410, 17));  
            conectado.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/computer_link.png"));  
            conectado.setForeground(SystemColor.desktop);  
            conectado.setText("");  
            jLabel = new JLabel();  
            jLabel.setBounds(new Rectangle(270, 7, 118, 22));  
            jLabel.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_osx_terminal.png"));  
            jLabel.setForeground(SystemColor.desktop);  
            jLabel.setText("Prompt Remoto");  
            jContentPane;
            jContentPane.setLayout(null);  
            jContentPane.setBackground(new Color(147, 169, 189));  
            jContentPane.add(getJTextArea(), null);  
            jContentPane.add(getComando(), null);  
            jContentPane.add(jLabel, null);  
            jContentPane.add(conectado, null);  
            jContentPane.add(getEnviacmd(), null);  
            jContentPane.add(getscrool(), null);  
                      
        }  
        return jContentPane;  
    }  
      
    public Prompt(){  
        JFrame();  
        jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);  
        jFrame.setVisible(true);  
        jFrame.setLocation((t.width - 677)/2 , (t.height - 463)/2);  
        conectado.setText("Conectado : " + super.Ip + " , " + super.porta );              
    }  
  
    private JTextArea getJTextArea() {  
        if (jTextArea == null) {  
            jTextArea = new JTextArea();  
            jTextArea.setBounds(new Rectangle(1, 59, 668, 342));  
            jTextArea.setEnabled(true);  
            jTextArea.setBackground(SystemColor.controlText);  
            jTextArea.setForeground(SystemColor.window);  
            jTextArea.setFont(new Font("Dialog", Font.PLAIN, 11));  
            jTextArea.setEditable(false);  
            jTextArea.setLineWrap( true ); //muda de linha automatico     
        }  
        return jTextArea;  
    }  
      
    private JScrollPane getscrool() {  
        if (scrool == null) {  
        	JScrollPane scrool = new JScrollPane(jTextArea);
        	scrool.setBackground(Color.white);  
        	scrool.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );    
        	scrool.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );     
    }  
          
        return scrool;  
    }  
  
    private JTextField getComando() {  
        if (Comando == null) {  
            Comando = new JTextField();  
            Comando.setBounds(new Rectangle(2, 401, 649, 30));  
            Comando.setBackground(SystemColor.info);  
            Comando.addKeyListener(new java.awt.event.KeyListener() {  
                public void keyReleased(java.awt.event.KeyEvent e) {  
                    int code = e.getKeyCode();  
                    if(code == KeyEvent.VK_ENTER){  
                          
                        ProcessoEnviar();     
                          
                    }  
                                          
                }  
                public void keyTyped(java.awt.event.KeyEvent e) {  
                }  
                public void keyPressed(java.awt.event.KeyEvent e) {  
                }  
            });  
        }  
        return Comando;  
    }  
    String g = "";  //  @jve:decl-index=0:  
    private JButton jButton = null;  
    private JButton enviacmd = null;  
      
     
      
    public void EditText(String line2){  
                            
        jTextArea.append(" \n" + line2);  
        jTextArea.setCaretPosition( jTextArea.getText().length() );   
          
        }  
      
          
          
    public void ProcessoEnviar(){  
        new Thread(){  
            public void run(){  
              
                ObjCliente.ExecutarConexao(Comando.getText());    
                Comando.setText("");  
                                  
            }  
                }.start();  
            }  
  
  
    /** 
     * This method initializes jButton   
     *   
     * @return javax.swing.JButton   
     */  
    private JButton getJButton() {  
        if (jButton == null) {  
            jButton = new JButton();  
            jButton.setBounds(new Rectangle(397, 403, 0, 0));  
        }  
        return jButton;  
    }  
  
  
    /** 
     * This method initializes enviacmd  
     *   
     * @return javax.swing.JButton   
     */  
    private JButton getEnviacmd() {  
        if (enviacmd == null) {  
            enviacmd = new JButton();  
            enviacmd.setBounds(new Rectangle(650, 401, 19, 31));  
            enviacmd.setBackground(Color.black);  
            enviacmd.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/bullet_go.png"));  
            enviacmd.addActionListener(new java.awt.event.ActionListener() {  
                public void actionPerformed(java.awt.event.ActionEvent e) {  
                    ProcessoEnviar();     
                }  
            });  
        }  
        return enviacmd;  
    }  
  
  
          
  
}
E

Parece que faltou um pequeno detalhe —>

Altere

64|          jContentPane;

para

64|          jContentPane = jFrame.getContentPane();

Tenta ai e me fala …

binhole

esqure:
Parece que faltou um pequeno detalhe —>

Altere

64|          jContentPane;

para

64|          jContentPane = jFrame.getContentPane();

Tenta ai e me fala …

Puts, ainda nd o erro que apresenta agora é o que segue… ?

IWAV0052E Invocation Target Exception creating IGrafica_Services.Prompt
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NullPointerException
	at java.awt.Container.addImpl(Container.java:1041)
	at java.awt.Container.add(Container.java:927)
	at IGrafica_Services.Prompt.getJContentPane(Prompt.java:72)
	at IGrafica_Services.Prompt.JFrame(Prompt.java:47)
	at IGrafica_Services.Prompt.<init>(Prompt.java:79)
	... 13 more
E

Testei seu codigo aqui e executou sem problema e o seguinte :

na linha

103| JScrollPane scrool = new JScrollPane(jTextArea);

vc muda para

103|	scrool = new JScrollPane(jTextArea);
M

O que você está usando para fazer sua interface? É algum plugin? Se for, isso é um erro de carregamento do plugin e não da sua aplicação (que deve funcionar normalmente).

binhole

agora rodou legal cara, o unico problema que o JTextArea desapareceu, mesmo eu criando uma outra classe sem utilizar o plugin (VEP)? quando vcs rodaram aparecem o jTextArea?

binhole

Por favor pessoal, eu estou a mais de 1 semana tentando exibir o JtextArea, o pessoal me ajudou, mas ao tentar incluir o Scrool simplesmente a JtextArea sumiu… alguém?

binhole

Pessoal só uma observação, eu fiz um teste pra saber se o plugin VEP que uso estava interferindo em algo ao executar a aplicação comentando os as linhas da classe prompt que adicionava o scrool à interface gráfica, funcionou perfeitamente…
segue a classe executando normalmente, porém sem o scrool automático…

package IGrafica_Services;    
    
import javax.swing.JFrame;    
import javax.swing.JPanel;    
import javax.swing.JScrollPane;    
    
import java.awt.Color;    
import java.awt.Container;  
import java.awt.Dimension;    
import java.awt.Toolkit;    
    
import javax.swing.JTextArea;    
import java.awt.Rectangle;    
import javax.swing.JTextField;    
import java.awt.SystemColor;    
import java.awt.event.KeyEvent;    
import java.util.ArrayList;    
    
import javax.swing.JLabel;    
    
import conexao.prototipo.NewCliente;    
import javax.swing.JButton;    
import javax.swing.ImageIcon;    
import java.awt.Font;    
import javax.swing.JScrollBar;    
import javax.swing.text.BadLocationException;    
    
public class Prompt extends ActiveMonitor {    
    
    private static final long serialVersionUID = 1L;    
    NewCliente ObjCliente = new NewCliente();  //  @jve:decl-index=0:    
    private JFrame jFrame = null;      
    private Container jContentPane = null;   
    private JTextArea jTextArea = null;    
    Dimension t = Toolkit.getDefaultToolkit().getScreenSize();  //  @jve:decl-index=0:    
    private JTextField Comando = null;    
    private JLabel jLabel = null;    
    private JLabel conectado = null;    
    private String line;  //  @jve:decl-index=0:    
    private JScrollPane scrool;  
    private void JFrame() {    
        jFrame = new JFrame();    
        jFrame.setSize(new Dimension(677, 463));    
        jFrame.setTitle("Prompt Remoto");    
        jFrame.setResizable(false);    
        jFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_xp_terminal.png"));    
        jFrame.setContentPane(getJContentPane());    
                    
}    
    
        
    private Container getJContentPane() {  
        if (jContentPane == null) {    
            conectado = new JLabel();    
            conectado.setBounds(new Rectangle(1, 37, 410, 17));    
            conectado.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/computer_link.png"));    
            conectado.setForeground(SystemColor.desktop);    
            conectado.setText("");    
            jLabel = new JLabel();    
            jLabel.setBounds(new Rectangle(270, 7, 118, 22));    
            jLabel.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/application_osx_terminal.png"));    
            jLabel.setForeground(SystemColor.desktop);    
            jLabel.setText("Prompt Remoto");    
            jContentPane = jFrame.getContentPane();  
            jContentPane.setLayout(null);    
            jContentPane.setBackground(new Color(147, 169, 189));    
            jContentPane.add(getJTextArea(), null);    
            jContentPane.add(getComando(), null);    
            jContentPane.add(jLabel, null);    
            jContentPane.add(conectado, null);    
            jContentPane.add(getEnviacmd(), null);    
           // jContentPane.add(getscrool(), null);    
                        
        }    
        return jContentPane;    
    }    
        
    public Prompt(){    
        JFrame();    
        jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);    
        jFrame.setVisible(true);    
        jFrame.setLocation((t.width - 677)/2 , (t.height - 463)/2);    
        conectado.setText("Conectado : " + super.Ip + " , " + super.porta );                
    }    
    
    private JTextArea getJTextArea() {    
        if (jTextArea == null) {    
            jTextArea = new JTextArea();    
            jTextArea.setBounds(new Rectangle(1, 59, 668, 342));    
            jTextArea.setEnabled(true);    
            jTextArea.setBackground(SystemColor.controlText);    
            jTextArea.setForeground(SystemColor.window);    
            jTextArea.setFont(new Font("Dialog", Font.PLAIN, 11));    
            jTextArea.setEditable(false);    
            jTextArea.setLineWrap( true ); //muda de linha automatico       
        }    
        return jTextArea;    
    }    
        
  /*  private JScrollPane getscrool() {    
        if (scrool == null) {    
        	scrool = new JScrollPane(jTextArea); 
            scrool.setBackground(Color.white);    
            scrool.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );      
            scrool.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );       
    }    
            
        return scrool;    
    }    */
    
    private JTextField getComando() {    
        if (Comando == null) {    
            Comando = new JTextField();    
            Comando.setBounds(new Rectangle(2, 401, 649, 30));    
            Comando.setBackground(SystemColor.info);    
            Comando.addKeyListener(new java.awt.event.KeyListener() {    
                public void keyReleased(java.awt.event.KeyEvent e) {    
                    int code = e.getKeyCode();    
                    if(code == KeyEvent.VK_ENTER){    
                            
                        ProcessoEnviar();       
                            
                    }    
                                            
                }    
                public void keyTyped(java.awt.event.KeyEvent e) {    
                }    
                public void keyPressed(java.awt.event.KeyEvent e) {    
                }    
            });    
        }    
        return Comando;    
    }    
    String g = "";  //  @jve:decl-index=0:    
    private JButton jButton = null;    
    private JButton enviacmd = null;    
        
       
        
    public void EditText(String line2){    
                              
        jTextArea.append(" \n" + line2);    
        jTextArea.setCaretPosition( jTextArea.getText().length() );     
            
        }    
        
            
            
    public void ProcessoEnviar(){    
        new Thread(){    
            public void run(){    
                
                ObjCliente.ExecutarConexao(Comando.getText());      
                Comando.setText("");    
                                    
            }    
                }.start();    
            }    
    
    
    /**  
     * This method initializes jButton    
     *    
     * @return javax.swing.JButton    
     */    
    private JButton getJButton() {    
        if (jButton == null) {    
            jButton = new JButton();    
            jButton.setBounds(new Rectangle(397, 403, 0, 0));    
        }    
        return jButton;    
    }    
    
    
    /**  
     * This method initializes enviacmd   
     *    
     * @return javax.swing.JButton    
     */    
    private JButton getEnviacmd() {    
        if (enviacmd == null) {    
            enviacmd = new JButton();    
            enviacmd.setBounds(new Rectangle(650, 401, 19, 31));    
            enviacmd.setBackground(Color.black);    
            enviacmd.setIcon(new ImageIcon("C:/Documents and Settings/cleber.goncalves/workspace/Monitor Services 2.0/src/IGrafica_Services/icons/bullet_go.png"));    
            enviacmd.addActionListener(new java.awt.event.ActionListener() {    
                public void actionPerformed(java.awt.event.ActionEvent e) {    
                    ProcessoEnviar();       
                }    
            });    
        }    
        return enviacmd;    
    }    
    
    
            
    
}
binhole

Obrigado a todos, consegui resolver o problema… :smiley:

Criado 26 de fevereiro de 2009
Ultima resposta 4 de mar. de 2009
Respostas 16
Participantes 4