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