Ol� a todos . Tenho uma pequena d�vida : eu tenho um JTextField dentro de um
JFrame  numa classe. Dentro do mesmo arquivo tenho uma classe que extende
Thread.
Quero saber como modificar o valor do JTextField de dentro da classe
BtnThread ; seria interessante
que BtnThread recebesse como argumento o JText e modificasse a vari�vel do
JTextField correspondente.
A� vai o c�digo-fonte, baseado num sample do JBuilder :
Obrigado a todos.
Jorge Fl�vio

/*
 * Copyright (c) 1997-1999 Inprise Corporation. All Rights Reserved.
 *
 */
package com.borland.samples.welcome;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

public class WelcomeFrame extends JFrame {
  BtnThread jbtn1trd,jbtn2trd;
  JPanel contentPane;
  JMenuBar jMenuBar1 = new JMenuBar();
  JMenu jMenuFile = new JMenu();
  JMenuItem jMenuFileExit = new JMenuItem();
  JMenu jMenuHelp = new JMenu();
  JMenuItem jMenuHelpAbout = new JMenuItem();
  JButton jButton1 = new JButton();
  TitledBorder titledBorder1;
  JButton jButton2 = new JButton();
  public JTextField jText1 = new JTextField();
  FlowLayout flowLayout1 = new FlowLayout();
  public JTextField jText2 = new JTextField();

  // Construct the frame
  public WelcomeFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  // Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder("");
    contentPane.setLayout(flowLayout1);
    this.setTitle("Welcome to JBuilder");
    this.setJMenuBar(jMenuBar1);
    this.setSize(new Dimension(400, 300));
    jMenuFile.setText("File");
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileExit_actionPerformed(e);
      }
    });
    jButton1.setMnemonic('0');
    jButton1.setText("JText1");
    jButton1.addMouseListener(new java.awt.event.MouseAdapter() {

      public void mouseClicked(MouseEvent e) {
        jButton1_mouseClicked(e);
      }
    });
    jButton1.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    contentPane.addAncestorListener(new javax.swing.event.AncestorListener()
{

      public void ancestorAdded(AncestorEvent e) {
        contentPane_ancestorAdded(e);
      }

      public void ancestorMoved(AncestorEvent e) {
      }

      public void ancestorRemoved(AncestorEvent e) {
      }
    });
    contentPane.setBorder(titledBorder1);
    jButton2.setToolTipText("");
    jButton2.setText("JText2");
    jText1.setText("In�cio       ");
    jText2.setToolTipText("");
    jText2.setText("In�cio       ");
    jMenuFile.add(jMenuFileExit);
    jMenuHelp.setText("Help");
    jMenuHelpAbout.setText("About");
    jMenuHelpAbout.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuHelpAbout_actionPerformed(e);
      }
    });
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
    contentPane.add(jText2, null);
    contentPane.add(jText1, null);
    contentPane.add(jButton2, null);
    contentPane.add(jButton1, null);
    jbtn1trd= new BtnThread();
    jbtn2trd= new BtnThread();
  }

  file://Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  file://File | Exit action performed
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }

  file://Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
  }

  void jButton1_actionPerformed(ActionEvent e) {

  }

  void contentPane_ancestorAdded(AncestorEvent e) {

  }

  void jButton1_mouseClicked(MouseEvent e) {
      jbtn1trd.start();
  }
}

/** Classe que extende Thread, utilizada pelos JButtons para
 * modificar o valor dos JTextFields contando at� 1000.
*/

class BtnThread extends Thread {

/** Era para esse construtor receber como argumento uma refer�ncia
      ao JTextField para eu poder modificar o texto do mesmo, independente
      de ser jtext1 ou jtext2
*/
public BtnThread() {
    super();
}
public void run() {
    for (int i = 0; i < 1000; i++) {
            try {
                sleep((int)(Math.random() * 1000));
                WelcomeFrame.jText1.setText("" + i/10 + " conclu�do ...");
            } catch (InterruptedException e) {}
    }
        jText1.setText("Conlcu�do : " + getName());
}

}



    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
    [d�vidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a